Merge tag 'upstream/0.11.90'

Upstream version 0.11.90
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