Merge tag 'upstream/1.1.2' into debian-experimental

Upstream version 1.1.2
diff --git a/COPYING b/COPYING
index eb685a5..c87cfe8 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
 		       Version 2, June 1991
 
  Copyright (C) 1991 Free Software Foundation, Inc.
-                    675 Mass Ave, Cambridge, MA 02139, USA
+                    51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -464,7 +464,7 @@
 
     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., 675 Mass Ave, Cambridge, MA 02139, USA.
+    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 Also add information on how to contact you by electronic and paper mail.
 
diff --git a/ChangeLog b/ChangeLog
index 17b1da4..c33daf6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,24 @@
-=== release 1.0.8 ===
+=== release 1.1.2 ===
 
-2013-07-12  Tim-Philipp Müller <tim@centricular.net>
+2013-07-11  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 1.0.8
+	  releasing 1.1.2
+
+2013-07-10 15:52:10 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/gstbin.c:
+	  bin: Always forward clock-lost message if we're not a top-level bin
+	  This makes sure that no bin misses the clock-lost messages, independent
+	  of the state, and could return an old, non-working clock from
+	  gst_bin_provide_clock_func().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701997
+
+2013-07-10 14:30:31 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Keep previous active sinkpad around until we're done with it
+	  Otherwise we'll send a new segment event downstream for each buffer.
 
 2013-07-08 15:26:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
@@ -13,23 +28,23 @@
 	  gstallocator.c:61:8: error: conflicting types for 'gst_memory_alignment'
 	  ../gst/gstallocator.h:52:18: note: previous declaration of 'gst_memory_alignment' was here
 
+2013-07-05 21:36:27 +0200  Piotr Drąg <piotrdrag@gmail.com>
+
+	* po/POTFILES.in:
+	  po: update POTFILES.in
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703682
+
 2013-07-04 20:39:26 -0400  Thibault Saunier <thibault.saunier@collabora.com>
 
 	* libs/gst/base/gstbasesrc.c:
 	  basesrc: Do not lock a mutex that does not exist
 	  The GST_LIVE_LOCK is on GstBaseSrc, not on its source pad.
 
-2013-06-19 10:45:45 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+2013-07-03 21:23:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* tests/check/gst/gstbuffer.c:
-	  buffer: Add unit test for map_range()
-	  https://bugzilla.gnome.org/show_bug.cgi?id=702617
-
-2013-06-19 08:36:22 +0200  Paul HENRYS <visechelle@gmail.com>
-
-	* gst/gstbuffer.c:
-	  buffer: Fix wrong size/index handling when merging memory
-	  https://bugzilla.gnome.org/show_bug.cgi?id=702617
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: reset PTS after seek
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702778
 
 2013-07-03 13:03:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
 
@@ -48,66 +63,267 @@
 	* libs/gst/base/gsttypefindhelper.c:
 	* libs/gst/base/gsttypefindhelper.h:
 	  Add few missing allow-none annotation
-	  https://bugzilla.gnome.org/show_bug.cgi?id=703562
-	  Conflicts:
-	  gst/gstmessage.c
 
-2013-05-30 07:03:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-07-03 09:27:13 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* tests/check/generic/sinks.c:
-	  check: fix position unit test
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: add new -bad mpegts lib
+	  And remove signalprocessor/video libs from -bad which have gone
+	  away or were merged into -base.
 
-2013-05-30 06:51:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-07-01 20:35:21 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstfunnel.h:
+	* tests/check/elements/funnel.c:
+	  funnel: Re-push all sticky events when buffers come from a different pad
+	  Don't special case segment/caps, just push all sticky events when they are
+	  received on the currently active pad or when the active pad changes.
+
+2013-07-01 20:21:10 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Use default pad function for upstream event/queries
+	  The default functions in 1.x already do the right thing
+
+2013-07-01 20:18:58 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/funnel.c:
+	  tests: Remove funnel pad_alloc test
+
+2013-07-01 20:07:03 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* libs/gst/check/gstcheck.h:
+	  check: Change stream_id parameter name to match GtkDoc
+
+2013-07-01 11:10:00 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/check/gstcheck.c:
+	* libs/gst/check/gstcheck.h:
+	* tests/check/elements/funnel.c:
+	  check: Added gst_check_setup_events_with_stream_id()
+	  Added a new function gst_check_setup_events_with_stream_id(), since
+	  gst_check_setup_events() does not work with multiple pads.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703377
+
+2013-06-30 18:39:03 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/gstpad.c:
+	  pad: Don't consider flushing pads as needing reconfiguration
+	  Renegotiation and reconfiguration will fail because all queries
+	  and events won't be accepted by the pad if it's flushing. In the
+	  best case this just causes unneeded work and spurious warnings in
+	  the debug logs, in the worst case it causes elements to fail completely.
+
+2013-06-24 23:25:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: only block serialized query when it's safe
+	  We must be certain that we don't cause a deadlock when blocking the serialized
+	  queries. One such deadlock can happen when we are buffering and downstream is
+	  blocked in preroll and a serialized query arrives. Downstream will not unblock
+	  (and allow our query to execute) until we complete buffering and buffering will
+	  not complete until we can answer the query..
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702840
+
+2013-06-19 12:30:47 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Add a filter to the caps_query done by acceptcaps
+	  Use the caps that the pad is asked to accept as filter for the query
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702632
+
+2013-06-19 12:19:02 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: optimize default acceptcaps implementation
+	  Pass the fixed caps we're asked to accept as a filter for the caps
+	  query, so we don't get a fully-expanded set of caps back (which we don't
+	  need and can take a lot of time for intersection).
+	  This reduces the time for camerabin to produce a second frame on a
+	  logitech C910 camera from around 52 seconds to a bit less then 16
+	  seconds on my system.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702632
+
+2013-06-19 09:19:53 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst/gsttaglist.c:
+	  taglist: Avoid combinatorial explosion when merging tags
+	  When appending/prepending tags, avoid re-creating (and copying) lists if we already
+	  have one and instead just append/prepend the GValue to the list.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702545
+
+2013-06-19 10:53:21 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstqueue.c:
+	  queue: Don't hold the queue mutex while doing serialized queries downstream
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702520
+
+2013-06-19 10:45:45 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* tests/check/gst/gstbuffer.c:
+	  buffer: Add unit test for map_range()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702617
+
+2013-06-19 08:36:22 +0200  Paul HENRYS <visechelle@gmail.com>
+
+	* gst/gstbuffer.c:
+	  buffer: Fix wrong size/index handling when merging memory
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702617
+
+2013-06-18 11:39:55 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/list-ulink.xsl:
+	  docs: add missing file for doc-link check
+
+2013-06-17 11:12:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/benchmarks/Makefile.am:
+	* tests/benchmarks/gstpoolstress.c:
+	  tests: add stress test for buffers and pools
+
+2013-06-17 10:25:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* libs/gst/base/gstbasesink.c:
-	  basesink: improve position reporting without clock
-	  When no base time or when sync is disabled, use the same logic as
-	  in paused to report position. The logic in PLAYING assumes we use the
-	  clock.
+	  basesink: call state change in all cases
+	  When we asynchronously go from READY to PLAYING, also call the
+	  state change function so that subclasses can update their state for PLAYING.
+	  Because the PREROLL lock is not recursive, we can't make this without
+	  races and we must assume for now that the subclass can handle concurrent calls
+	  to PAUSED->PLAYING and PLAYING->PAUSED. We can make this assumption because not
+	  many elements actually do something in those state changes and the ones that
+	  did would be broken even more without this change.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702282
 
-2013-05-25 22:03:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+2013-06-16 15:07:35 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* plugins/elements/gstvalve.c:
-	  valve: Don't read sticky flag from unrefed event
+	* docs/faq/dependencies.xml:
+	* docs/manual/appendix-integration.xml:
+	* docs/manual/basics-pads.xml:
+	* docs/manual/intro-motivation.xml:
+	  docs: fix some external links
 
-2013-02-13 10:46:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-16 14:45:08 +0200  Stefan Sauer <ensonic@users.sf.net>
 
+	* docs/manuals.mak:
+	  docs: check for broken links in docs
+	  The check is done using curl (if available). It lists the curl exit code + http
+	  status code (for those > 399) together with the use of the url in the code. The
+	  check is not fatal.
+
+2013-06-16 13:05:21 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/manual/basics-elements.xml:
+	* docs/pwg/intro-preface.xml:
+	  docs: change https to http urls
+	  Thank you browser for needlessly changing to https for static doc pages.
+
+2013-06-16 11:41:52 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/faq/developing.xml:
+	* docs/manual/basics-elements.xml:
+	* docs/manual/basics-init.xml:
+	* docs/pwg/intro-preface.xml:
+	  docs: update links to developer.gnome.org
+	  The URL layout has changed. Fix the links and comment out one paragraph where
+	  the doc is gone.
+	  Fixes #702135
+
+2013-06-14 13:05:38 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* docs/gst/gstreamer-sections.txt:
 	* gst/gststructure.c:
-	* tests/check/gst/gstcaps.c:
-	  structure: Make sure that subsets have all fields of the superset
-	  "video/x-h264,parsed=(boolean)true" is not a superset of
-	  "video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal"
-	  for example.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693365
+	* gst/gststructure.h:
+	* win32/common/libgstreamer.def:
+	  structure: Add gst_structure_new_from_string()
+	  Convenience API for bindings, gst_structure_from_string() returns
+	  a tuple (structure, end_ptr) in bindings and is unintuitive to use
+	  because of that.
 
-2013-03-26 19:22:18 -0400  Olivier Crête <olivier.crete@collabora.com>
+2013-06-13 08:36:23 +0200  Hans de Goede <hdegoede@redhat.com>
 
-	* gst/gstallocator.c:
-	* gst/gstbuffer.c:
-	* gst/gstbuffer.h:
-	  buffer: fix gobject-introspection annotations, esp. for gst_buffer_fill
+	* gst/gst.c:
+	  gst: Don't intercept --help in gst_init()
+	  Before this patch gst_init would intercept --help, causing for example
+	  cheese's --help to look like this:
+	  [hans@shalem cheese]$ cheese --help
+	  Usage:
+	  cheese [OPTION...] - GStreamer initialization
+	  Help Options:
+	  -h, --help                        Show help options
+	  --help-all                        Show all help options
+	  --help-gst                        Show GStreamer Options
+	  gst_init is the only gfoo_init function which does this.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702089
 
-2013-05-08 10:25:36 +0100  Tim-Philipp Müller <tim@centricular.net>
+2013-06-12 09:45:56 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst/gstbuffer.c:
-	  buffer: allow calling _fill() with a NULL data pointer if size is 0 bytes
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: add uridownloader lib in -bad to search paths
+	  Even if it might not be around for long.
 
-2013-04-27 00:05:45 +0100  Tim-Philipp Müller <tim@centricular.net>
+2013-06-11 10:25:02 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* plugins/elements/gsttypefindelement.c:
-	* tests/check/pipelines/simple-launch-lines.c:
-	  typefind: fix caps leak when used in connection with uridecodebin and playbin
-	  Don't leak forced sink caps.
+	* tools/gst-launch.c:
+	  gst-launch: Remove unref that should not be there
+	  We keep a reference to the context around all the time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701985
 
-=== release 1.0.7 ===
+2013-06-09 17:20:22 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-2013-04-26 12:11:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* tools/gst-launch.c:
+	  gst-launch: Improve GstContext handling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700967
+
+2013-06-07 13:07:37 +0200  Kim Lam <kim@redgiantsoftware.com>
+
+	* win32/vs10/base/base.vcxproj:
+	  win32: Don't include gstcollectpads.c twice
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701603
+
+2013-05-31 09:39:55 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* plugins/elements/gstinputselector.c:
+	  input-selector: send notify::active signal for input-selector pads.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701319
+
+2013-06-06 16:46:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Only force-update the duration for dynamic sources when doing the DURATION query
+	  Doing it after every single create() is not very efficient and not necessary.
+	  Especially on network file systems fstat() is not cached and causes network
+	  traffic, making the source possibly unusable slow.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=652037
+
+2013-06-05 18:36:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.1.1 ===
+
+2013-06-05 17:58:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ChangeLog:
 	* NEWS:
 	* RELEASE:
+	* common:
 	* configure.ac:
+	* docs/plugins/gstreamer-plugins.args:
+	* docs/plugins/gstreamer-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-coreelements.xml:
 	* gstreamer.doap:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstversion.h:
+	  Release 1.1.1
+
+2013-06-05 16:06:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
 	* po/af.po:
 	* po/az.po:
 	* po/be.po:
@@ -124,7 +340,6 @@
 	* po/fi.po:
 	* po/fr.po:
 	* po/gl.po:
-	* po/hr.po:
 	* po/hu.po:
 	* po/id.po:
 	* po/it.po:
@@ -147,9 +362,669 @@
 	* po/vi.po:
 	* po/zh_CN.po:
 	* po/zh_TW.po:
-	* win32/common/config.h:
-	* win32/common/gstversion.h:
-	  Release 1.0.7
+	  Update .po files
+
+2013-06-05 15:14:14 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* common:
+	  Automatic update of common submodule
+	  From 098c0d7 to 01a7a46
+
+2013-06-05 11:02:50 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst/gstbufferpool.c:
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* win32/common/libgstreamer.def:
+	  gstvalue: Add _append_and_take_value() public variants
+	  API: gst_value_array_append_and_take_value
+	  API: gst_value_list_append_and_take_value
+	  We were already using this internally, this makes it public for code
+	  which frequently appends values which are expensive to copy (like
+	  structures, arrays, caps, ...).
+	  Avoids copies of the values for users. The passed GValue will also
+	  be 0-memset'ed for re-use.
+	  New users can replace this kind of code:
+	  gst_value_*_append_value(mycontainer, &myvalue);
+	  g_value_unset(&myvalue);
+	  by:
+	  gst_value_*_append_and_take_value(mycontainer, &myvalue);
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701632
+
+2013-05-29 17:20:34 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst/gstbuffer.c:
+	  gstbuffer: Use internal function for buffer_new_wrapped
+	  Shaves ~10% instruction calls from the total cost
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701633
+
+2013-05-30 22:57:49 -0600  Brendan Long <self@brendanlong.com>
+
+	* plugins/elements/gstinputselector.c:
+	  input-selector: return FALSE for "active" property if selector is NULL
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701323
+
+2013-06-01 14:00:22 +0100  Andrzej Bieniek <andyhelp@gmail.com>
+
+	* docs/manual/advanced-threads.xml:
+	  manual: update elements to match the rest of "Boost priority of a thread" section
+
+2013-06-01 13:55:50 +0100  Andrzej Bieniek <andyhelp@gmail.com>
+
+	* docs/manual/advanced-dataaccess.xml:
+	  manual: fix comment in effectswitch example
+
+2013-06-01 13:49:18 +0100  Andrzej Bieniek <andyhelp@gmail.com>
+
+	* docs/manual/advanced-dataaccess.xml:
+	  manual: fix a typo in "Inserting data with appsrc" section
+
+2013-06-01 13:22:22 +0100  Andrzej Bieniek <andyhelp@gmail.com>
+
+	* docs/pwg/advanced-dparams.xml:
+	* docs/pwg/advanced-qos.xml:
+	* docs/pwg/appendix-checklist.xml:
+	  pwg: fix a few typos
+
+2013-05-31 23:37:07 +0100  Andrzej Bieniek <andyhelp@gmail.com>
+
+	* docs/pwg/advanced-allocation.xml:
+	* docs/pwg/building-boiler.xml:
+	* docs/random/porting-to-1.0.txt:
+	  docs: remove double "the"
+
+2013-05-28 23:34:54 +0100  Krzysztof Konopko <krzysztof.konopko@gmail.com>
+
+	* scripts/git-update.sh:
+	  scripts: improve git-update.sh status message
+	  By default when the script is about to exit (normally or due to an error),
+	  it checks whether $ERROR_LOG file exists.  If the log file exists, the
+	  script prints a "Failures: " message prefix and dumps the log file to the
+	  output.
+	  Apparently the log file is always created and if the update/build is
+	  successful, the script finishes with a bit misleading "Failures: " message.
+	  An improvement provided with this change lets the log file to be created as
+	  needed, i.e. if there's an error message to be printed.  If the file
+	  doesn't exists, the script prints a "Update done" message which clearly
+	  indicates success.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701177
+
+2013-05-30 07:03:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/generic/sinks.c:
+	  check: fix position unit test
+
+2013-05-30 06:51:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: improve position reporting without clock
+	  When no base time or when sync is disabled, use the same logic as
+	  in paused to report position. The logic in PLAYING assumes we use the
+	  clock.
+
+2013-05-29 11:36:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  pad: Fix memory leak in the unit test
+
+2013-05-28 12:44:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelementfactory.c:
+	  elementfactory: Add support for checking subtitle/metadata factory types
+
+2013-05-28 12:41:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelementfactory.c:
+	  elementfactory: Add support for checking only the media type of a factory
+	  And while at it also add Metadata and Subtitle media types.
+
+2013-05-27 16:38:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	  (multi)queue: Don't access query items during flushing
+
+2013-05-27 16:22:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Don't do serialized queries when we're flushing
+	  Just immediately fail the query, otherwise we would wait forever
+	  for the query to be answered.
+
+2013-05-27 16:08:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: First set query result, then signal GCond
+
+2013-05-27 15:59:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	  queue: Fix handling of serialized queries
+	  During FLUSH_START the query needs to be unblocked already, otherwise
+	  it can lead to deadlocks if the FLUSH_START is the result of something
+	  done from the streaming thread of the srcpad (the queue will never be
+	  emptied!).
+
+2013-05-27 15:41:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Unblock any waiting serialize queries on FLUSH_START
+	  Fixes some deadlocks during flushing.
+	  And store queue items differently to not accidentially read
+	  already unreffed queries when flushing. Queries are owned by
+	  upstream and not us.
+
+2013-05-27 13:01:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  queue/queue2/multiqueue: When flushing, make sure to not lose any sticky events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688824
+
+2013-05-27 12:40:50 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/gstpad.c:
+	  pad: Store sticky events even if the pad is flushing
+	  But do this only for events that are not dropped by flushing,
+	  i.e. do it only for everything except SEGMENT and EOS.
+	  Without this we might drop a CAPS event if flushing happens
+	  at an unfortunate time and nobody is resending the CAPS event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700806
+
+2013-05-25 22:03:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* plugins/elements/gstvalve.c:
+	  valve: Don't read sticky flag from unrefed event
+
+2013-05-24 23:28:04 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* plugins/elements/gsttee.c:
+	  tee: fix property description for now-unused "alloc-pad" property
+	  Should probably proxy ALLOCATION queries on that though, if set.
+	  But what else? CAPS and ACCEPT_CAPS too?
+
+2013-05-24 23:01:09 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: remove 0.10-ism from docs
+	  gst_buffer_pad_alloc() never existed, and gst_pad_alloc_buffer()
+	  doesn't exist any more either, so don't mention it in the docs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694714
+
+2013-05-24 19:22:22 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gstqueue2.h:
+	  queue2: Add support for serialized queries if using a memory queue
+
+2013-05-24 18:47:24 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstqueue.c:
+	  queue: Set the last serialized query result to FALSE when flushing
+
+2013-05-24 18:42:55 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Initialize all GstMultiQueueItem fields in both code paths
+
+2013-05-24 18:38:40 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Don't access the query after signalling the waiting thread
+	  It might've free'd the query already.
+
+2013-05-24 18:30:44 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Make sure to always signal any possible pending serialized queries
+	  And don't unref them when flushing the queue, they're owned by the caller!
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700342
+
+2013-05-24 14:37:19 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Return GST_FLOW_ERROR if the allocator did not allow to allocate a buffer
+
+2013-05-24 16:24:10 +0900  Olivier Crête <olivier.crete@collabora.com>
+
+	* docs/manual/appendix-integration.xml:
+	  docs: Remove mention of gconf* elements
+	  Instead recommend pulsesrc/sink for audio, there is nothing GNOME
+	  specific for video.
+
+2013-05-15 13:22:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Handle the force-caps property more similar to all typefinding code flow
+	  This makes sure that events happen in order and simplifies the code a bit.
+
+2013-05-15 11:21:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.c:
+	  check: Fix event handling in gst_check_element_push_buffer_list()
+
+2013-05-15 10:51:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 5edcd85 to 098c0d7
+
+2013-05-10 16:03:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Only check if we get buffers before stream-start/segment if compiling without G_DISABLE_ASSERT
+	  In releases this is set usually.
+
+2013-05-09 17:17:14 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/check/gstcheck.c:
+	* libs/gst/check/gstcheck.h:
+	  check: Add helper that sends initial events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 17:22:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Fix uninitialized variable compiler warning
+
+2013-05-09 17:21:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Make sure pending, older sticky events are sent downstream in dynamic linking scenarios
+	  If a pad block was triggered from sending a sticky event downstream, it
+	  could happen that the pad block is relinking pads, which then requires
+	  to resend previous sticky events.
+
+2013-05-09 13:32:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/fakesink.c:
+	* tests/check/elements/filesink.c:
+	* tests/check/elements/funnel.c:
+	* tests/check/elements/identity.c:
+	* tests/check/elements/multiqueue.c:
+	* tests/check/elements/queue.c:
+	* tests/check/elements/queue2.c:
+	* tests/check/elements/selector.c:
+	* tests/check/elements/tee.c:
+	* tests/check/generic/sinks.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/libs/collectpads.c:
+	  tests: Fix event order warnings and dataflow before stream-start/segment event
+
+2013-05-09 13:31:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/libs/test_transform.c:
+	* tests/check/libs/transform1.c:
+	  basetransform: Properly port unit test to actually use caps and check results
+
+2013-05-09 12:50:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: Store sticky events on the srcpad if we're dropping them because of leaking
+
+2013-05-09 12:27:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstoutputselector.c:
+	  outputselector: Always forward sticky events to all pads
+
+2013-05-09 12:15:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Forward all sticky events, including stream-start
+
+2013-05-09 11:05:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Warn if data flow happens before stream-start or segment event
+
+2013-05-09 10:59:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Only let gst_pad_sticky_events_foreach() iterate over existing events
+
+2013-05-09 10:29:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: If we push sticky events because of another sticky event, only push those that come before the new event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699937
+
+2013-05-09 09:50:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	  capsfilter: Add more debug output and forward caps events immediately too
+
+2013-05-09 09:42:33 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: No sticky events must arrive after EOS
+
+2013-05-09 09:38:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	  capsfilter: Fix typo in last commit
+
+2013-05-08 19:44:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Improve warning message naming events type name
+	  With this patch, message should look like ¨Sticky event misordering, got
+	  'caps' before 'stream-start'¨ making it faster to debug.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688188
+
+2013-05-08 18:19:48 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Only inforce STREAM_START, CAPS and SEGMENT ordering
+	  Previous patch was inforcing a complete ordering of the sticky events, while
+	  in fact, only STREAM_START, CAPS and SEGMENT events need proper ordering.
+	  See: https://bugzilla.gnome.org/show_bug.cgi?id=688188
+
+2013-05-09 09:32:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	* plugins/elements/gstcapsfilter.h:
+	  capsfilter: Send all events that should happen after CAPS after the CAPS event
+
+2013-05-08 21:45:08 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	* plugins/elements/gstcapsfilter.h:
+	  capsfilter: Send caps before segment
+	  In the case the source has no caps, caps must be sent before segment. This
+	  fixes few unit tests that where failing due to the new misordering warning.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699968
+
+2013-05-07 21:53:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Detect, fix and warn when sticky events are in wrong order
+	  We can prevent buggy element from causing other elements to fail or crash
+	  by sorting sticky event at insertion. In this case, we also warn as this
+	  is not supposed to happen.
+	  See: https://bugzilla.gnome.org/show_bug.cgi?id=688188
+
+2013-05-08 10:26:15 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/gst/gstbuffer.c:
+	  tests: add some basic checks for gst_buffer_fill()
+
+2013-05-08 10:25:36 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstbuffer.c:
+	  buffer: allow calling _fill() with a NULL data pointer if size is 0 bytes
+
+2013-05-07 16:46:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Add FIXME comment for unused assignment results
+
+2013-05-07 15:18:06 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/manual/advanced-metadata.xml:
+	  docs: fix typo in metadata section in app dev manual
+	  There's no g_tag_list_get_xyz().
+
+2013-05-07 14:47:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* libs/gst/controller/gsttimedvaluecontrolsource.c:
+	  controller: Fix the function signature and a minor typo fix
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699827
+
+2013-05-06 18:47:44 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Send stream-start before anything else
+	  To do so, send stream-start when the streaming thread goes up for the first
+	  time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699767
+
+2012-12-26 11:54:51 +0000  David Rothlisberger <david@rothlis.net>
+
+	* tools/gstreamer-completion:
+	  tools/gstreamer-completion: Allow 1.0 and 0.10 scripts installed simultaneously
+	  As long as the scripts' filenames are different, and the _gst_inspect
+	  and _gst_launch functions are named differently, the completion scripts
+	  for GStreamer 1.0 and 0.10 can be installed side-by-side in
+	  /etc/bash_completion.d.
+	  On my 0.10 branch† the completion script is renamed to
+	  "gstreamer-completion-0.10" and the functions are renamed to
+	  "_gst_inspect_0_10" and "_gst_launch_0_10". The remaining helper
+	  functions should remain identical (the command-line interface to
+	  gst-inspect hasn't changed, nor has the format of the gst-launch
+	  pipeline), so it doesn't matter if the 1.0 script overrides the 0.10
+	  script's definitions.
+	  Note that I don't expect there to be another GStreamer 0.10 release, so
+	  the 0.10 completion script will probably never be officially released;
+	  but it is still worthwhile allowing both scripts to be installed
+	  alongside each other, for those who install the 0.10 completion script
+	  manually.
+	  Fixes: #690515
+	  † https://github.com/drothlis/gstreamer/blob/bash-completion-0.10/tools/gstreamer-completion-0.10
+
+2012-12-21 18:13:53 +0000  David Rothlisberger <david@rothlis.net>
+
+	* tests/misc/test-gstreamer-completion.sh:
+	* tools/gstreamer-completion:
+	  tools/gstreamer-completion: Complete option & property values on bash 3.2
+	  Bash 3's completion doesn't split words by characters in
+	  COMP_WORDBREAKS. In particular it doesn't split at "=" signs. Now
+	  _gst_launch_parse handles both bash 3 and 4 format of COMP_WORDS.
+	  Note that "${cur%%=*}" means cur's value with the longest possible match
+	  of "=*" deleted from the end; "${cur#*=}" means cur's value with the
+	  shortest possible match of "*=" deleted from the beginning. See
+	  http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
+	  Regardless of the version of bash running the unit tests, I can test for
+	  both behaviours because the unit test populates COMP_WORDS manually. So
+	  this tests the bash 3 behaviour:
+	  test_gst_inspect_completion --gst-debug-level=4
+	  and this tests the bash 4 behaviour:
+	  test_gst_inspect_completion --gst-debug-level = 4
+
+2012-12-21 08:56:26 +0000  David Rothlisberger <david@rothlis.net>
+
+	* tests/misc/test-gstreamer-completion.sh:
+	* tools/gstreamer-completion:
+	  tools/gstreamer-completion: Bash 3.2 compatibility fixes
+	  Compatible with bash 3.2; doesn't require the bash-completion package at
+	  all (though the easiest way to install this script is still to install
+	  bash-completion, and then drop this script into /etc/bash_completion.d).
+	  Note that bash 3 doesn't break COMP_WORDS according to characters in
+	  COMP_WORDBREAKS, so "property=val" looks like a single word, so this
+	  won't complete property values (on bash 3). Similarly,
+	  "--gst-debug-level=<TAB>" won't complete properly (on bash 3), but
+	  "--gst-debug-level <TAB>" will.
+	  For that reason, I now offer "--gst-debug-level" etc as completions
+	  instead of "--gst-debug-level=".
+	  Functions "_init_completion" and "_parse_help" were provided by the
+	  bash-completion package >= 2.0; now I roll my own equivalent of
+	  "_parse_help", and instead of "_init_completion" I use
+	  "_get_comp_words_by_ref" which is available from bash-completion 1.2
+	  onwards. If the bash-completion package isn't available at all I use
+	  bash's raw facilities, at the expense of not completing properly when
+	  the cursor is in the middle of a word.
+	  The builtin "compopt" doesn't exist in bash 3; those users will just
+	  have to live with the inconvenience of "property=" completing to
+	  "property= " with a trailing space. Property values aren't completed
+	  properly anyway on bash 3 (see above).
+	  "[[ -v var ]]" to test whether a variable is set, also doesn't exist in
+	  bash 3. Neither does ";;&" to fall through in a "case" statement.
+	  In the unit tests:
+	  * On my system (OS X), "#!/bin/bash" is bash 3.2, whereas
+	  "#!/usr/bin/env bash" is the 4.2 version I built myself.
+	  * I have to initialise array variables like "expected=()", or bash 3
+	  treats "+=" as appending to an array already populated with one empty
+	  string.
+
+2012-12-19 10:46:50 +0000  David Rothlisberger <david@rothlis.net>
+
+	  tools/gstreamer-completion: Support gst-inspect, and gst-launch element properties
+	  Completes options like "--gst-debug-level" and the values of some of
+	  those options; completes gst-launch pipeline element names, property
+	  names, and even property values (for enum or boolean properties only).
+	  Doesn't complete all caps specifications, nor element names specified
+	  earlier in the pipeline with "name=...".
+	  The GStreamer version number is hard-coded into the completion script:
+	  This patch is off the master branch and has the version hard-coded as
+	  "1.0"; it needs to be updated if backported to the 0.10 branch. You
+	  could always create a "gstreamer-completion.in" that has the appropriate
+	  version inserted by "configure", but I'd rather not do that. The
+	  hard-coded version is consistent with the previous implementation of
+	  gstreamer-completion, which had the registry path hard-coded as
+	  ~/.gstreamer-1.0/registry.xml.
+	  Note that GStreamer 0.10 installs "gst-inspect" and "gst-inspect-0.10".
+	  "gst-inspect --help" only prints 4 flags (--help, --print, --gst-mm,
+	  gst-list-mm) whereas "gst-inspect-0.10 --help-all" prints the full list
+	  of flags. The same applies to "gst-launch" and "gst-launch-0.10".
+	  GStreamer 1.0 only installs "gst-inspect-1.0", not "gst-inspect".
+	  Requires bash 4; only tested with bash 4.2. Requires "bash-completion"
+	  (which you install with your system's package manager).
+	  Put this in /etc/bash_completion.d/ or in `pkg-config
+	  --variable=compatdir bash-completion`, where it will be loaded at the
+	  beginning of every new terminal session;
+	  or in `pgk-config --variable=completionsdir bash-completion`, renamed to
+	  match the name of the command it completes (e.g. "gst-launch-1.0", with
+	  an additional symlink named "gst-inspect-1.0"), where it will be
+	  autoloaded when needed.
+	  test-gstreamer-completion.sh is (for now) in tests/misc -- it might be
+	  worth creating "tests/check/tools", with all the necessary automake
+	  boilerplate, and moving test-gstreamer-completion.sh there, and have it
+	  run automatically with "make check".
+	  IF YOU'RE NEW TO BASH COMPLETION SCRIPTS
+	  ----------------------------------------
+	  "complete -F _gst_launch gst-launch-1.0" means that bash will run the
+	  function "_gst_launch" to generate possible completions for the command
+	  "gst-launch-1.0".
+	  "_gst_launch" must return the possible completions in the array variable
+	  COMPREPLY. (Note on bash syntax: "V=(a b c)" assigns three elements to
+	  the array "V").
+	  "compgen" prints a list of possible completions to standard output. Try
+	  it:
+	  compgen -W "abc1 abc2 def" -- "a"
+	  compgen -f -- "/"
+	  The last argument is the word currently being completed; compgen uses it
+	  to filter out the non-matching completions. We put "--" first, in case
+	  the word currently being completed starts with "-" or "--", so that it
+	  isn't treated as a flag to compgen.
+	  For the documentation of COMP_WORDS, COMP_CWORD, etc see
+	  http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-COMP_005fCWORD-180
+	  See also:
+	  * http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion.html
+	  * http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html
+	  The bash-completion package provides the helper function
+	  "_init_completion" which populates variables "cur", "prev", and "words".
+	  See
+	  http://anonscm.debian.org/gitweb/?p=bash-completion/bash-completion.git;a=blob;f=bash_completion;h=870811b4;hb=HEAD#l634
+	  Note that by default, bash appends a space to the completed word. When
+	  the completion is "property=" we don't want a trailing space; calling
+	  "compopt -o nospace" modifies the currently-executing completion
+	  accordingly. See
+	  http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html#index-compopt
+
+2012-11-13 16:36:46 +0000  David Rothlisberger <david@rothlis.net>
+
+	* tools/gstreamer-completion:
+	  tools/gstreamer-completion: Updated to work with the binary registry
+	  The original registry was in xml format (~/.gstreamer-*/registry.xml). A
+	  binary registry format was added in 2007 (commit ebf0c9d3) and made the
+	  default in 2008 (commit 3f39fd7e). In 0.10 you could still choose at
+	  "configure" time to use the xml registry instead; in 1.0 the binary
+	  registry is your only choice.
+	  This change to gstreamer-completion should work with either format
+	  because it parses the output of "gst-inspect" instead of reading the
+	  registry file directly.
+	  Note that _gst_launch no longer needs an explicit "return 0" because,
+	  unlike the previous grep command, compgen always returns 0 (unless a
+	  genuine error occurs).
+	  Just like the previous implementation by David Schleef, this "only
+	  completes names of features, but that's 90% of what I want it for."
+
+2013-04-29 21:11:36 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  porting-to-1.0.txt: nit clarification
+	  It is the process context that matters.
+
+2013-04-29 13:20:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Always leave TYPEFIND mode when we're stopping typefinding
+
+2013-04-29 13:03:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Simplify code
+	  This is only called when in TYPEFIND mode.
+
+2013-04-29 12:58:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Push pending events independent of the existence of a downstream chain function and peer
+	  Downstream might create a peer only as result of the events in theory.
+
+2013-04-29 12:56:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Only push CAPS event once if we get one from upstream
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692784
+
+2013-04-29 12:54:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Stop typefinding if we get a CAPS event from upstream
+
+2013-04-29 12:52:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Improve handling of GAP events
+	  There's still room for improvement though.
+
+2013-04-29 12:48:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Forward events that should happen before the caps event directly
+	  There's no point in storing them and sending them later, and doing so would
+	  later require to distinguish between events that should come before caps and
+	  after.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692784
+
+2013-04-29 12:48:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Only push pending buffers and events if we have caps
+
+2013-04-29 12:39:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Remove code that would cause caps to be sent twice
+	  Whenever we set typefind->caps we will also send a caps event downstream.
+
+2013-04-27 20:33:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/pwg/advanced-allocation.xml:
+	  pwg: improve allocation docs
+
+2013-04-27 11:46:13 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/check/gstcheck.c:
+	  check: set CK_TIMEOUT_MULTIPLIER on ARM
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695599
+
+2013-04-27 00:05:45 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* plugins/elements/gsttypefindelement.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	  typefind: fix caps leak when used in connection with uridecodebin and playbin
+	  Don't leak forced sink caps.
+
+2013-04-22 18:08:43 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* libs/gst/controller/gsttimedvaluecontrolsource.c:
+	  controller: Fix element-type annotations
 
 2013-04-25 16:38:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -158,10 +1033,189 @@
 	  We should only increase the refcount before pushing if we're
 	  really going to use the buffer afterwards.
 
-2013-04-22 18:08:43 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+2013-04-25 07:15:39 +0200  Alessandro Decina <alessandro.d@gmail.com>
 
-	* libs/gst/controller/gsttimedvaluecontrolsource.c:
-	  controller: Fix element-type annotations
+	* tests/check/gst/gstpad.c:
+	  tests: add check for FLUSH pad probes
+
+2013-04-24 08:40:32 +0200  Alessandro Decina <alessandro.d@gmail.com>
+
+	* gst/gstpad.c:
+	  gstpad: run probes for FLUSH events sent with gst_pad_send_event
+	  Move probe handling in gst_pad_send_event_unchecked so that probes are run for
+	  FLUSH events too.
+
+2013-04-24 15:58:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/net/gstnetclientclock.c:
+	* libs/gst/net/gstnettimeprovider.c:
+	  netclock: Add support for IPv6
+
+2013-04-24 12:30:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-1.0.txt:
+	  porting-to-1.0.txt: add troubleshooting section
+	  Add note about "cannot register existing type `GstObject'" warning.
+
+2013-04-23 11:47:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Only infer TS if PTS interpolation is enabled
+	  Otherwise this is breaking timestamps of formats that
+	  need reordering.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=597662
+
+2013-04-23 11:17:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: notify caps property on NULL as well
+	  Also notify the caps property when it changes to NULL
+
+2013-04-23 11:16:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: clarify locking
+
+2013-04-22 23:50:17 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* MAINTAINERS:
+	* README:
+	* README.static-linking:
+	* common:
+	  Automatic update of common submodule
+	  From 3cb3d3c to 5edcd85
+
+2013-04-19 15:01:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/design/Makefile.am:
+	* docs/design/part-context.txt:
+	* gst/gstcontext.c:
+	  part-context: Write some design documentation about GstContext
+
+2013-04-19 13:21:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/design/part-caps.txt:
+	  part-caps: Add more information about caps features, caps semantics and how to use them
+
+2013-04-19 11:23:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/design/part-caps.txt:
+	* gst/gstcapsfeatures.c:
+	  capsfeatures: Add documentation about ANY GstCapsFeatures
+
+2013-04-19 10:24:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: Don't set last_render_time if we're checking for a late buffer before ::prepare()
+	  This makes sure that at least one buffer per second is rendered if buffers
+	  are dropped before ::prepare. Without this change, at least one buffer per
+	  second wouldn't be too late before ::prepare anymore but would be dropped
+	  before ::render because of last_render_time being set before ::prepare
+	  already.
+
+2013-02-08 03:57:44 -0200  Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  gstvalue: Add compare function for caps
+
+2013-01-15 16:57:20 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* libs/gst/base/gstdataqueue.c:
+	* libs/gst/base/gstdataqueue.h:
+	* win32/common/libgstbase.def:
+	  dataqueue: add gst_data_queue_peek
+	  This function works just like gst_data_queue_pop, but it doesn't
+	  remove the object from the queue.
+	  Useful when inspecting multiple GstDataQueues to decide from which
+	  to pop the element from.
+	  Add: gst_data_queue_peek
+
+2013-04-18 10:14:09 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/gst/.gitignore:
+	  tests: ignore new test binary
+
+2013-04-18 10:13:30 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/gst-launch.c:
+	  tools: update for latest context API changes
+
+2013-04-18 10:17:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcontext.c:
+	* gst/gstcontext.h:
+	* tests/check/gst/gstcontext.c:
+	* win32/common/libgstreamer.def:
+	  context: Add gst_context_writable_structure() and let get_structure() return const again
+
+2013-04-18 00:44:32 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/printf-parse.c:
+	* tests/check/gst/gstinfo.c:
+	  printf: fix handling of old printf extension specifiers for ABI compatibility
+	  Fixes abort when the old specifiers are used. Fix up the conversion
+	  specifier, it would get overwritten with 'c' below to the extension
+	  format char, which then later is unhandled, leading to the abort.
+	  Also fix up and enable unit test for this.
+	  https://bugzilla.gnome.org/process_bug.cgi
+
+2013-04-18 00:28:00 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/gst/gstinfo.c:
+	  tests: add unit test for old printf extension specifiers
+	  To make sure we maintain binary compatibility with the old
+	  specifiers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698242
+
+2013-04-18 00:19:23 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/check/gstcheck.h:
+	  check: run skipped tests if explicitly requested via GST_CHECKS
+	  If a test that's disabled with tcase_skip_broken_test() is listed
+	  in the GST_CHECKS environment variable, run it anyway.
+
+2013-04-17 13:47:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  gst-launch: Add GstContext support
+	  gst-launch will collect all the contexts from the pipeline elements
+	  and update the overall pipeline context with it.
+
+2013-04-17 12:44:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/gstcontext.c:
+	  context: Add unit test for GstContext
+
+2013-04-17 12:17:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcontext.c:
+	* gst/gstcontext.h:
+	  context: Return a non-const GstStructure to make code simpler and update docs
+
+2013-03-29 14:56:57 +0100  Philippe Normand <philn@igalia.com>
+
+	* docs/design/part-scheduling.txt:
+	* gst/gstquery.h:
+	* win32/common/gstenumtypes.c:
+	  query: new _BANDWIDTH_LIMITED flag
+	  Source elements with limited bandwidth capabilities and supporting
+	  buffering for downstream elements should set this flag when answering
+	  a scheduling query. This is useful for the on-disk buffering scenario
+	  of uridecodebin to avoid checking the URI protocol against a list of
+	  hardcoded protocols.
+	  Bug 693484
+
+2013-04-16 09:55:00 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  docs: fix missing flacdec in porting-to-1.0 pipeline example
+
+2013-04-16 09:03:52 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  docs: add note about decoders and parsers to porting-to-1.0 doc
 
 2012-10-24 11:58:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -185,32 +1239,61 @@
 	  to build all plugins we build here as static plugins.
 	  Fixes bug #667305.
 
-2013-03-25 09:16:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-04-12 13:50:39 +1200  Douglas Bagnall <douglas@paradise.net.nz>
 
-	* tests/check/gst/gstcaps.c:
-	  caps: Add unit test for GST_CAPS_{ANY,NONE} and GST_STATIC_CAPS_{ANY,NONE}
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696435
+	* docs/manual/appendix-porting.xml:
+	  manual: Patch manual to refer to porting guide
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697845
 
-2013-03-25 09:19:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-04-13 19:43:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
 
-	* gst/gstcaps.c:
-	  caps: Fix gst_static_caps_get(GST_STATIC_CAPS_NONE)
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696435
+	* gst/gstpluginfeature.c:
+	  pluginfeature: Fix the GstPluginFeature name comparison.
+	  The gst_plugin_feature_rank_compare_func() should return
+	  negative value, if the rank of both PluginFeatures are equal and
+	  the name of first PluginFeature comes before the second one.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697990
 
-2013-03-21 21:00:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+2013-04-14 17:54:22 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* libs/gst/base/gstbasesrc.c:
-	  basesrc: Don't send error if negotiate fails because we are flushing
-	  Negotiation may be aborted by a flush from another thread that need to
-	  stop the task (i.e. seek). Check that case and silently pause the task.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696357
+	* common:
+	  Automatic update of common submodule
+	  From 2736592 to 3cb3d3c
 
-2013-04-12 16:13:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-04-14 17:25:35 +0100  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst/gsttaglist.c:
-	  taglist: avoid triggering an assertion
-	  When deserialization of the structure fails, return a NULL taglist instead of
-	  asserting.
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From aed87ae to 2736592
+
+2013-04-14 11:33:41 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/printf.c:
+	* gst/printf/printf.h:
+	  printf: disable some unused printf variants
+
+2013-04-14 11:23:10 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/gst-printf.h:
+	  printf: use sprintf() to work around glibc complaining about %n in a writable format string
+	  Don't use snprintf(), but use sprintf instead and do our own
+	  length calculations, because glibc may complain about us passing
+	  %n in a format string if the string is in writable memory, and
+	  here the format string is always in writable memory since we
+	  construct it on the fly. This happens if glibc has been compiled
+	  with _FORTIFY_SOURCE=2, which seems to be the case on some
+	  distros/systems). On the upside, we now use the sprintf code path
+	  on all systems which should be better from a maintenance point
+	  of view.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697970
+
+2013-04-13 12:18:28 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/gst/gstpoll.c:
+	  tests: skip all GstPoll tests on Windows
+	  As they don't work there, and it's non-trivial to fix.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697609
 
 2013-04-13 12:00:12 +0100  Tim-Philipp Müller <tim@centricular.net>
 
@@ -219,51 +1302,17 @@
 	  Spotted by Jose Antonio Santos Cadena.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=697791
 
-2013-04-11 14:54:32 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+2013-04-12 14:48:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
 
-	* tools/gst-inspect.c:
-	  gst-inspect: add pointer mark to signal and action return types that are pointers
-	  When the return type of a signal or action is a pointer, it
-	  should have an asterisk to mark it as such.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697791
+	* gst/gstplugin.h:
+	  plugin: fix name expansion for GST_PLUGIN_DEFINE macro
+	  Make GST_PLUGIN_DEFINE use G_STRINGIFY() to convert the name argument
+	  into a meaningful string. The advantage of this is that `name' can be
+	  expanded from other macros defined in the plug-in element.
+	  Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697872
 
-2013-04-09 10:17:45 +0100  Tim-Philipp Müller <tim@centricular.net>
-
-	* libs/gst/net/gstnetclientclock.c:
-	  netclientclock: bind socket before querying local address
-	  Fails on windows otherwise.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697608
-
-2013-04-04 16:39:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst/gstbufferpool.c:
-	  bufferpool: fix docs
-
-2013-03-30 11:06:59 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst/gstsegment.c:
-	  segment: Fix seeking when position is slightly outside the segment
-	  Very often, when the end of a segment is detected by demuxer, the position
-	  is slightly outside the segment boundaries. Currently, if that is the case
-	  the base will be set to NONE instead of normal accumulation. This would
-	  break non-flushing seeks in oggdemux and most likely other demuxers.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
-
-=== release 1.0.6 ===
-
-2013-03-22 12:33:48 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-coreelements.xml:
-	* gstreamer.doap:
-	* win32/common/config.h:
-	* win32/common/gstversion.h:
-	  Release 1.0.6
-
-2013-03-22 09:53:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-04-13 11:35:49 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* po/af.po:
 	* po/az.po:
@@ -281,7 +1330,6 @@
 	* po/fi.po:
 	* po/fr.po:
 	* po/gl.po:
-	* po/hr.po:
 	* po/hu.po:
 	* po/id.po:
 	* po/it.po:
@@ -304,7 +1352,983 @@
 	* po/vi.po:
 	* po/zh_CN.po:
 	* po/zh_TW.po:
-	  po: update for new translatable string
+	  po: add new translatable strings
+
+2013-04-12 23:58:52 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/Makefile.am:
+	* gst/gst_private.h:
+	* gst/gstelement.c:
+	* gst/gstinfo.c:
+	  printf: don't build if debugging subsystem was disabled
+
+2013-04-10 11:51:37 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* gst/printf/Makefile.am:
+	* gst/printf/gst-printf.h:
+	  printf: deal with some of the HAVE_FOO used in the printf code
+	  Probably needs some more work for MSVC.
+
+2013-04-08 19:42:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/printf/README:
+	* gst/printf/vasnprintf.c:
+	  printf: fix alloca use for windows with mingw32
+	  Don't use just GLIB_HAVE_ALLOCA_H to check if alloca is available,
+	  that's just for the header. GLib may define alloca for us otherwise
+	  too irrespective of GLIB_HAVE_ALLOCA_H.
+	  Fixes compiler warning with mingw32:
+	  gst/printf/vasnprintf.c:73:0: warning: "alloca" redefined
+
+2013-04-07 20:11:21 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* gst/printf/Makefile.am:
+	* gst/printf/vasnprintf.c:
+	  printf: enable and fix compiler warnings
+	  But suppress -Wformat-nonliteral warnings since sprintf
+	  is used with a runtime-generated format string in our
+	  vasnprintf implementation.
+
+2013-04-07 18:21:00 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/printf-parse.c:
+	* gst/printf/vasnprintf.c:
+	* gst/printf/vasnprintf.h:
+	  printf: fix up dodgy use of #if HAVE_FOO and #if !HAVE_FOO
+	  Should use #ifdef and #ifndef.
+
+2013-04-07 17:36:29 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/Makefile.am:
+	  printf: mark internal functions as internal
+
+2013-04-07 17:29:02 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/printf-parse.c:
+	  printf: skip pointer extension signifier chars after %p
+	  So they don't get printed after the serialised pointer string.
+
+2013-04-07 17:21:10 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/vasnprintf.c:
+	  printf: don't leak serialised pointer extension strings
+
+2013-04-07 17:02:55 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/printf-parse.c:
+	  printf: handle old GST_PTR_FORMAT %P and GST_SEGMENT_FORMAT %Q defines too
+	  For binary backwards compatibility.
+
+2013-04-07 16:41:40 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/printf/printf-args.c:
+	* gst/printf/printf-args.h:
+	* gst/printf/printf-parse.c:
+	* gst/printf/printf-parse.h:
+	* gst/printf/vasnprintf.c:
+	  printf: make printf parser recognise our pointer extension format
+	  and call the hook to get a string for the pointer instead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=613081
+
+2013-03-30 18:28:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	* gst/printf/Makefile.am:
+	* gst/printf/README:
+	* gst/printf/printf-extension.c:
+	* gst/printf/printf-extension.h:
+	  printf: add infrastructure for pointer extensions hook
+	  Does not do anything yet. On a sidenote, we can't just use
+	  %p\001 or so to signal the extension because g-i complains
+	  about an invalid ascii character then, so have to resort to
+	  something more elaborate, such as %p\aA etc.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=613081
+
+2013-03-30 17:20:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstconfig.h.in:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	  info: use new internal printf for debug message printing
+	  and remove all the printf extension/specifier stuff for
+	  the system printf. Next we need to add back the custom
+	  specifiers to our own printf implementation.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=613081
+
+2013-03-30 15:13:32 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* gst/Makefile.am:
+	* gst/printf/Makefile.am:
+	* gst/printf/README:
+	* gst/printf/asnprintf.c:
+	* gst/printf/gst-printf.h:
+	* gst/printf/printf-args.c:
+	* gst/printf/printf-args.h:
+	* gst/printf/printf-parse.c:
+	* gst/printf/printf-parse.h:
+	* gst/printf/printf.c:
+	* gst/printf/printf.h:
+	* gst/printf/vasnprintf.c:
+	* gst/printf/vasnprintf.h:
+	  printf: add our own printf implementation for debug logging
+	  We will add support for our own printf modifiers, so we can
+	  get nice debug log output on all operating systems irrespective
+	  of the specific libc version used.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=613081
+
+2013-04-12 16:13:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	  taglist: avoid triggering an assertion
+	  When deserialization of the structure fails, return a NULL taglist instead of
+	  asserting.
+
+2013-04-11 14:54:32 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: add pointer mark to signal and action return types that are pointers
+	  When the return type of a signal or action is a pointer, it
+	  should have an asterisk to mark it as such.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697791
+
+2013-04-11 22:32:39 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  docs: document type change of playbin's connection-speed property in porting docs
+
+2013-04-11 14:31:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* win32/common/libgstreamer.def:
+	  buffer: add _gst_max_memory() function
+	  Add the a function to query the maximum amount of memory blocks that can be
+	  added to a buffer. Also improve the docs for _insert_memory().
+
+2013-04-11 14:04:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/net/gstnettimeprovider.c:
+	  nettimeprovider: notify of changed bound address
+	  Notify when the bound address is known, just like the port.
+
+2013-04-11 13:55:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  launch: handle PROGRESS messages
+	  Wait for all PROGRESS messages (if any) to complete before going to the PLAYING
+	  state. This is the only way we can wait for live elements to complete their
+	  operations.
+	  This is interesting for elements like rtspsrc that do some asynchronous network
+	  requests as part of going to the PAUSED state. It could be possible that it, for
+	  example, provides a clock and then we would like to wait until it completes
+	  so that we can use the provided clock when going to PLAYING.
+
+2013-04-11 15:05:08 +1200  Douglas Bagnall <douglas@paradise.net.nz>
+
+	* docs/pwg/advanced-negotiation.xml:
+	  Toggle upstream and downstream in RECONFIGURE paragraph.
+
+2013-04-11 10:11:25 +1200  Douglas Bagnall <douglas@paradise.net.nz>
+
+	* libs/gst/base/gstcollectpads.c:
+	  GstCollectPads documentation: gst_collect_pads_read is gone.
+
+2013-04-10 21:24:38 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbus.c:
+	  bus: fix the precondition for gst_bus_disable_sync_message_emission()
+	  Use the right variable and invert the test. The precondition should catch
+	  someone calling to once too often.
+
+2013-04-09 19:37:06 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/gstcapsfeatures.c:
+	  capsfeatures: Init debug category before ever using it
+
+2013-04-09 20:59:36 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 04c7a1e to aed87ae
+
+2013-04-03 21:32:54 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* docs/manuals.mak:
+	  Use xlstproc instead of docbook2html
+
+2013-04-09 10:17:45 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/net/gstnetclientclock.c:
+	  netclientclock: bind socket before querying local address
+	  Fails on windows otherwise.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697608
+
+2013-04-08 13:14:35 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* configure.ac:
+	  configure: Also check for clock_gettime in libpthread
+	  libwinpthreads provides POSIX time API.
+	  It also provides libpthread alias for itself, for compatibility, so that
+	  is what we will link with.
+	  Fixes #697550
+
+2013-04-08 15:30:07 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* gst/gstsystemclock.c:
+	* gst/gstutils.c:
+	  clock: Do use HAVE_CLOCK_GETTIME
+	  Fixes #697549
+
+2013-04-08 14:42:15 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* tests/check/gst/gstabi.c:
+	* tests/check/gst/struct_i386w.h:
+	  libsabi: Special struct size values for W32
+	  These account for both possible type size mismatch AND -mms-bitfields
+	  packing. Sizes are taken from an i686-w64-mingw32-built GStreamer,
+	  gcc 4.8.0, mingw-w64 svn-r5685.
+	  Fixes #697551
+
+2013-04-09 09:22:39 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* tests/check/gst/gstpad.c:
+	  tests: fix GstPad test on windows and in CK_FORK=no mode
+	  Need to clear buffer lists at the end of each test.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697610
+
+2013-04-06 16:09:54 -0700  David Schleef <ds@schleef.org>
+
+	* tools/gst-launch.c:
+	  gst-launch: Fix space in fault message
+
+2013-04-06 22:10:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcapsfeatures.c:
+	  capsfeatures: Copy ANY flag when copying caps features too
+
+2013-04-06 21:49:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* tools/gst-inspect.c:
+	  caps: Handle ANY caps features properly in more places
+
+2013-04-06 21:21:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstcaps.c:
+	  caps: Add test for operations on caps with ANY features
+
+2013-04-06 21:09:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: Properly handle ANY caps features in caps operations
+
+2013-04-05 21:10:48 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbus.c:
+	  bus: update signal docs for gst_bus_enable_sync_message_emission()
+
+2013-04-05 10:15:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: ignore empty not-linked queues
+	  We need to ignore the not-linked queues in the underrun and overrun callbacks
+	  because they are expected to be empty.
+
+2013-04-04 23:12:52 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstcaps.c:
+	  caps: fix caps feature leak
+	  Fixes leaks in 14 core unit tests including
+	  gst/gstcaps.
+
+2013-04-04 19:16:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: start pushing again on RECONFIGURE
+	  When we got NOT_LINKED before and we receive a RECONFIGURE event, start pushing
+	  again on the source pad.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=676304
+
+2013-04-04 19:07:29 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: start pushing again on RECONFIGURE
+	  When we got NOT_LINKED before and we receive a RECONFIGURE event, start pushing
+	  again on the source pad.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=676304
+
+2013-04-04 19:06:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: start pushing again on RECONFIGURE
+	  When we got NOT_LINKED before and we receive a RECONFIGURE event, start pushing
+	  again on the source pad.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=676304
+
+2013-04-04 17:59:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: simplify is_subset check
+	  Iterate over the fields of the superset instead of those of the subset.
+	  This way we can check the presence of the subset field and do the subset check
+	  in one iteration.
+
+2013-04-04 17:46:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: update docs, is_subset() works now
+
+2013-04-04 16:39:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: fix docs
+
+2013-04-04 16:20:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* win32/common/libgstreamer.def:
+	  pad: add gst_pad_store_sticky_event()
+	  Rewire some internal functions and expose a new
+	  gst_pad_store_sticky_event() function.
+	  API: gst_pad_store_sticky_event()
+
+2013-04-04 15:45:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.h:
+	  pad: clarify docs
+
+2013-04-04 15:45:15 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: improve debug
+
+2013-04-04 10:17:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstsegment.c:
+	  segment: don't WARN, just DEBUG
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696911
+
+2013-03-30 11:06:59 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/gstsegment.c:
+	  segment: Fix seeking when position is slightly outside the segment
+	  Very often, when the end of a segment is detected by demuxer, the position
+	  is slightly outside the segment boundaries. Currently, if that is the case
+	  the base will be set to NONE instead of normal accumulation. This would
+	  break non-flushing seeks in oggdemux and most likely other demuxers.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
+
+2013-04-03 17:29:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2013-04-03 16:02:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: add stream flags
+
+2013-04-02 18:17:00 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* docs/random/porting-to-1.0.txt:
+	  porting-to-1.0.txt: subtitle text media types changed as well
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697153
+
+2013-04-02 23:51:06 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstcontext.c:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* tests/check/gst/.gitignore:
+	  docs: more since markers and other docs fixes
+
+2013-04-02 23:21:39 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstcapsfeatures.c:
+	  docs: add since markers to capsfeatures docs
+
+2013-04-02 23:18:42 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* scripts/git-update.sh:
+	  scripts: add some more modules to git-update.sh
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697058
+
+2013-04-02 23:04:51 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: add uninstalled orc/orc-test/.libs to library paths
+	  This is needed by the unit tests in gst-plugins-base, -good etc.
+	  Spotted by Alex Kaye.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697093
+
+2013-04-02 22:13:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcaps.c:
+	* gst/gstcapsfeatures.c:
+	* gst/gstcapsfeatures.h:
+	* tests/check/gst/gstcapsfeatures.c:
+	  capsfeatures: Add GST_CAPS_FEATURES_ANY
+	  This is equal to any other caps features but results in unfixed caps. It
+	  would be used by elements that only look at the buffer metadata or are
+	  currently working in passthrough mode, and as such don't care about any
+	  specific features.
+
+2013-04-01 22:13:10 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstinfo.c:
+	  info: minor cosmetic changes
+	  Let's not use ugly leading underscores for
+	  static functions.
+
+2013-04-01 21:23:21 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstinfo.c:
+	  info: fix object printing of caps features in debug log
+
+2013-04-01 16:38:43 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/draft-tracing.txt:
+	  draft-tracing: update draft design with timer ideas
+
+2013-03-30 17:03:44 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstinfo.c:
+	  info: refactor pretty printing objects
+	  Extract formatters into local functions. Change the structure filtering so that
+	  it works for taglists too.
+
+2013-03-30 16:39:38 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstelement.c:
+	  element: make post_message and query more alike
+
+2013-04-01 10:20:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: Print caps features too
+
+2013-04-01 10:19:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcapsfeatures.c:
+	  capsfeatures: For copying features it's not required to have no parent refcount
+
+2013-04-01 10:19:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: Set features' parent refcount in gst_caps_set_features() too
+
+2013-04-01 10:18:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: Set sysmem features if explicitely requested
+
+2013-03-31 19:09:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/design/part-caps.txt:
+	  design: Add the caps features and describe how the caps operations actually work
+
+2013-03-30 15:35:19 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gst.h:
+	* gst/gst_private.h:
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* gst/gstcapsfeatures.c:
+	* gst/gstcapsfeatures.h:
+	* gst/gstinfo.c:
+	* gst/gststructure.c:
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* tests/check/Makefile.am:
+	* tests/check/gst/gstcaps.c:
+	* tests/check/gst/gstcapsfeatures.c:
+	* win32/common/libgstreamer.def:
+	  caps: Add new data type for handling caps features to the caps
+	  These are meant to specify features in caps that are required
+	  for a specific structure, for example a specific memory type
+	  or meta.
+	  Semantically they could be though of as an extension of the media
+	  type name of the structures and are handled exactly like that.
+
+2013-03-31 15:30:19 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstevent.h:
+	  event: add SELECT and UNSELECT stream flags for stream-start event
+	  So demuxers can signal which audio/video/subtitle streams should
+	  be selected by default and which should not be selected
+	  automatically.
+	  API: GST_STREAM_FLAG_SELECT
+	  API: GST_STREAM_FLAG_UNSELECT
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695968
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690911
+
+2013-01-06 20:27:54 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* tests/check/gst/gstevent.c:
+	* win32/common/libgstreamer.def:
+	  event: add stream flags to stream-start event
+	  API: gst_event_set_stream_flags()
+	  API: gst_event_parse_stream_flags()
+	  API: GST_STREAM_FLAG_NONE
+	  API: GST_STREAM_FLAG_SPARSE
+	  https://bugzilla.gnome.org/show_bug.cgi?id=600648
+
+2013-03-31 11:26:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* win32/common/libgstreamer.def:
+	  element: Add API to get the last set context from an element
+	  Elements should override GstElement::set_context() and also call
+	  gst_element_set_context() to keep this context up-to-date with
+	  the very latest context they internally use.
+
+2013-03-30 14:04:28 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/draft-tracing.txt:
+	  design: add initial tracing design doc
+
+2013-03-30 11:47:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Let gst_pad_get_allowed_caps() pass the caps own caps as filter
+	  This will reduce the number of caps created downstream and we don't
+	  need to intersect in the very end with the pad's own caps.
+
+2013-03-30 10:24:27 +0100  Josep Torra <n770galaxy@gmail.com>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: fixes compiler warning
+	  gstbasesink.c: In function 'gst_base_sink_chain_unlocked':
+	  gstbasesink.c:3204: warning: 'ret' may be used uninitialized in this function
+
+2013-03-29 19:01:59 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstchildproxy.c:
+	  childproxy: fix gir warning
+
+2013-03-29 18:49:14 +0100  Edward Hervey <edward@collabora.com>
+
+	* docs/pwg/building-boiler.xml:
+	  Revert "pwg: Fix example"
+	  This reverts commit 5d64f27d881274a40f0441bb8c5b3816fdfc5b9e.
+	  *sigh*
+
+2012-11-06 09:41:58 +0100  Edward Hervey <edward@collabora.com>
+
+	* docs/pwg/building-boiler.xml:
+	  pwg: Fix example
+
+2012-11-11 13:52:25 +0100  Edward Hervey <edward@collabora.com>
+
+	* gst/gstpad.c:
+	  pad: Remove SEGMENT sticky events when flushing
+	  When flushing, it is expected that upstream will send a SEGMENT
+	  event afterwards.
+	  This also avoids stray SEGMENT events from coming through after a
+	  flush.
+
+2013-03-28 15:35:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gst_private.h:
+	* gst/gstbin.c:
+	* gst/gstcontext.c:
+	* gst/gstcontext.h:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstinfo.c:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* win32/common/libgstbase.def:
+	* win32/common/libgstreamer.def:
+	  gst: Add new GstContext miniobject for sharing contexts in a pipeline
+
+2013-03-28 16:42:50 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstargbcontrolbinding.c:
+	  argb-controlbinding: fix messed up property setter
+	  This was misassigning the control sources. It was also leaking the old values if
+	  a control source would be replaced.
+
+2013-03-27 18:25:08 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: reset next_pts upon SEGMENT event
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
+
+2013-02-26 19:58:49 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: more inter-timestamp tracking
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
+
+2013-03-26 19:22:18 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstallocator.c:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* win32/common/libgstreamer.def:
+	  buffer: Add annotations and pygi friendly extraction function
+	  API: gst_buffer_extract_dup
+
+2013-03-27 17:08:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-1.0.txt:
+	  porting: hopefully clarify a little
+
+2013-03-25 18:11:54 -0700  David Schleef <ds@schleef.org>
+
+	* gst/gstutils.c:
+	  Update docs for gst_pad_create_stream_id_printf()
+	  To indicate that format strings should be alpha sortable.
+
+2013-03-25 09:16:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstcaps.c:
+	  caps: Add unit test for GST_CAPS_{ANY,NONE} and GST_STATIC_CAPS_{ANY,NONE}
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696435
+
+2013-03-25 09:19:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: Fix gst_static_caps_get(GST_STATIC_CAPS_NONE)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696435
+
+2013-03-21 21:00:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Don't send error if negotiate fails because we are flushing
+	  Negotiation may be aborted by a flush from another thread that need to
+	  stop the task (i.e. seek). Check that case and silently pause the task.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696357
+
+2013-03-24 17:53:35 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/design/part-toc.txt:
+	* gst/gsttoc.c:
+	  toc: some documentation updates
+
+2013-03-22 20:02:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/pwg/building-queryfn.xml:
+	  docs: fix typo in query function example in Plugin Writer's Guide
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696142
+
+2013-03-07 12:11:30 +0100  Jonas Holmberg <jonashg@axis.com>
+
+	* tests/check/libs/collectpads.c:
+	  tests: fix spurious failure in test_collect collectpads test
+	  pop() in collected callback.
+	  There were three threads in the test cases that hanged: the test thread and two
+	  threads that push buffers. Each thread push one buffer on one pad. There are
+	  two pads in the collectpads so the second buffer will trigger the
+	  collect-callback.
+	  This is what happens when the hang occurs:
+	  The first thread pushes a buffer and initializes a cookie to the value of a
+	  counter in the collectpads object and waits on a cond for the counter to change
+	  and for someone to consume the buffer (i.e. _pop() it).
+	  The second thread pushes a buffer and calls the collected callback, which
+	  signals the cond that the test thread is waiting for.
+	  The test thread pops both buffers (without holding any lock). Each call to
+	  _pop() increases the counter broadcasts the condition that the first thread is
+	  now waiting for. It then joins both threads (hangs).
+	  The first thread wakes up and returns, since its buffer has been consumed.
+	  The second thread starts executing again. When the callback, called by the
+	  second thread, has returned it initializes a cookie to the value of a counter,
+	  which has already prematurely been increased by the test thread when it popped
+	  the buffers, and wait's on a cond for the counter to change and for someone to
+	  consume the buffer (i.e. _pop() it). Since the buffer has already been poped
+	  and the counter has already been increased it will be stuck forever.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=685555
+
+2013-03-16 12:05:39 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: remove ffmpeg libs from dynamic linker paths
+	  We link those libs into the plugin statically, or use external
+	  system libs, but never the internal snapshot dynamically.
+
+2013-03-16 12:00:55 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: add gst-editing-serves to GI_TYPELIB_PATH
+	  So pygi can find it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695937
+
+2013-03-12 13:53:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstutils.h:
+	  utils: make sure slow GST_READ_UINT* variants don't have unexpected side effects
+	  Fixes unit test on systems where unaligned memory access is not possible.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695599
+
+2013-03-05 11:14:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  launch: don't exit the loop on buffering in paused
+	  When we receive a buffering message of 100% in the paused state, we exit
+	  the event_loop and move to the PLAYING state. What should happen is that
+	  we wait for both ASYNC-DONE and 100% buffering before continueing.
+
+2013-03-08 13:15:32 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/part-controller.txt:
+	  design: update controller design and add some thoughs for future stuff
+
+2013-03-08 08:13:06 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstdirectcontrolbinding.c:
+	  docs: mention clipping of values in control-binding docs
+
+2013-03-08 08:10:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gstcontroller.c:
+	  controller: code cleanups
+	  Use a property for accessing the control-source on the binding. Drop base_init
+	  on the test object.
+
+2013-03-07 11:46:33 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: gst_query_get_n_allocation_params() returns a new ref to the allocator
+
+2013-03-07 11:35:03 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/controller.c:
+	  controller: remove a bogus test
+	  We previously forgot to initilize the amplitde property to the default and thus it was 0.0. Therefore a default lfo controlsource returned a series of 0.0 and the test was asserting on that.
+
+2013-03-07 09:15:14 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolbinding.c:
+	* libs/gst/controller/gstargbcontrolbinding.c:
+	* libs/gst/controller/gstdirectcontrolbinding.c:
+	  controlbinding: relax the pspec for the control-source
+	  We can change control sources on controlbindings.
+
+2013-03-07 09:12:59 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstlfocontrolsource.c:
+	  lfo: set a sensible lower boundary for the frequency
+	  Use DBL_MIN, which is a the smalles double greater than zero that is not in
+	  denormal format. This exposes the limit better than the runtime check.
+
+2013-03-06 23:59:28 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 2de221c to 04c7a1e
+
+2013-03-06 16:40:27 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstlfocontrolsource.c:
+	  lfocontrolsource: init the amplitude to the default and update the docs
+
+2013-03-05 11:30:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: Add all the base/bad libraries and remove obsolete ones
+
+2013-03-03 16:00:11 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: fix use of uninitialized variable
+	  Running suite(s): GstBaseSink
+	  ==22023== Conditional jump or move depends on uninitialised value(s)
+	  ==22023==    at 0x505FFCE: gst_base_sink_get_sync_times (gstbasesink.c:1936)
+	  ==22023==    by 0x5068C80: gst_base_sink_do_sync (gstbasesink.c:2379)
+	  ==22023==    by 0x506BCD2: gst_base_sink_default_wait_event (gstbasesink.c:2903)
+	  ==22023==    by 0x50633A4: gst_base_sink_default_event (gstbasesink.c:2918)
+	  ==22023==    by 0x6F5C216: gst_fake_sink_event (gstfakesink.c:383)
+	  ==22023==    by 0x505F164: gst_base_sink_event (gstbasesink.c:3108)
+	  ==22023==    by 0x52FA090: gst_pad_send_event_unchecked (gstpad.c:4822)
+	  ==22023==    by 0x5303756: gst_pad_send_event (gstpad.c:4984)
+	  ==22023==    by 0x40165B: basesink_test_gap (basesink.c:148)
+
+2013-03-03 12:06:36 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: Fix memory copying logic in copy_into()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695035
+
+2013-03-03 11:28:32 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstregistrychunks.c:
+	  registrychunks: Use correct print format specifiers to fix compiler warnings
+
+2013-02-22 14:22:01 -0800  David Schleef <ds@schleef.org>
+
+	* gst/gstobject.c:
+	  Fix misspellings of 'continuous'
+
+2013-02-22 14:56:49 -0800  David Schleef <ds@schleef.org>
+
+	* libs/gst/base/gstcollectpads.c:
+	  collectpads: take DTS into account
+	  Importantly, this patch converts DTS to running time.  Less importantly,
+	  and possibly a problem for some muxers, is that it orders buffers by
+	  DTS (if it is valid, otherwise PTS).  This is generally correct, but
+	  might be somewhat surprising to muxers.
+	  Also note that once converted to running time, DTS can end up negative.
+
+2013-02-28 22:59:43 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/manual/advanced-dparams.xml:
+	  manual: improve the controller docs a little more
+	  Reword some sections. Explain value mappings better.
+
+2013-02-28 19:40:32 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: add gst-libav to pkg-config path
+
+2013-02-27 22:15:48 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstsegment.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	  seeking: add more logging for seeking
+	  Especially add logging to error code paths.
+
+2013-02-27 10:09:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	  buffer: Gracefully handle gst_memory_copy() returning NULL without crashing
+	  gst_buffer_copy_into() and gst_buffer_resize_range() can now fail.
+
+2013-02-26 17:33:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstallocator.c:
+	* win32/common/libgstreamer.def:
+	  allocator: small internal cleanups
+	  Rename System memory allocator to GstAllocatorSysmem and the memory to
+	  GstMemorySystem.
+
+2013-02-26 15:37:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	  memory: add method to check memory type
+	  Add a method to check if a memory was allocated from an allocator of
+	  a given type.
+	  API: gst_memory_is_type()
+
+2013-02-26 15:36:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: improve docs a little
+
+2013-02-26 15:32:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-gstbin.txt:
+	* docs/design/part-messages.txt:
+	* gst/gstbin.c:
+	  use GST_MESSAGE_DURATION_CHANGED in docs and code
+
+2013-02-26 14:40:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: don't unref allocator too soon
+	  Unref the allocator *after* we have freed the memory. We also need to keep
+	  a ref to the allocator around because following the now freed memory would
+	  lead to crashes.
+
+2013-02-26 09:08:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: Fix inverted logic for deciding if memory should be shared or copied
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694717
+
+2013-02-26 07:50:13 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  porting: mention segment accumulation in the porting guide
+	  This needs more detail, but at least gives people a hint on the issue.
+
+2013-02-26 07:48:35 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstmessage.c:
+	  docs: s/start/done/ copy'n'paste mistake
+
+2013-02-25 13:57:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* win32/common/libgstreamer.def:
+	  query: Add new API to remove allocation params and pools from the allocation query
+
+2013-02-25 13:24:33 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: Document that the first allocator in the allocation query should allow mapping to system memory
+
+2013-02-24 09:24:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: Keep a reference to the allocator
+	  Otherwise the allocator might get freed while it's still used
+	  by the memory
+
+2013-02-24 09:33:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: If sharing a GstMemory fails, fall back to copying it
+
+2013-02-23 18:36:15 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  docs: porting-to-1.0.txt: some element names have changed
+
+2013-02-23 08:19:48 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstmemory.h:
+	  memory: It's contiguous, not continous
+
+2013-02-22 12:41:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstmemory.h:
+	  memory: Add new memory flag to specify that memory can't be mapped
+
+2013-02-22 09:02:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstmemory.h:
+	  memory: Add memory flag to mark physically continous memory
 
 2013-02-16 23:02:21 +0000  Tim-Philipp Müller <tim@centricular.net>
 
@@ -318,6 +2342,144 @@
 	  Fixes spurious warnings in audioresample shutdown unit test.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=693996
 
+2013-02-21 10:18:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: Add ORC
+
+2013-02-19 18:00:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstutils.h:
+	* tests/check/gst/gstutils.c:
+	  utils: avoid unexpected side-effects of GST_WRITE_* macros
+	  Make sure the data argument is only evaluated once.
+
+2013-02-19 17:36:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/check/gstcheck.h:
+	* tests/check/gst/gstutils.c:
+	  check: add some more fail_unless_*() macros for convenience
+	  API: fail_unless_equals_int_hex
+	  API: assert_equals_int_hex
+	  API: fail_unless_equals_int64_hex
+	  API: assert_equals_int64_hex
+	  API: fail_unless_equals_uint64_hex
+	  API: assert_equals_uint64_hex
+	  API: fail_unless_equals_pointer
+	  API: assert_equals_pointer
+
+2013-02-19 12:42:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* scripts/gst-uninstalled:
+	  scripts: add new -base allocators library to gst-uninstalled search paths
+
+2013-02-18 20:47:04 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/collectpads.c:
+	  collectpads: add two more tests using collectpads within an element
+	  Add a static plugin with a rudimentary element using collectpads and do some
+	  pipeline based tests.
+
+2013-02-17 12:50:03 -0800  David Schleef <ds@schleef.org>
+
+	* docs/manual/appendix-porting.xml:
+	  docs: Fix some ambiguous wording
+
+2013-02-17 19:53:55 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  triggercontrolsource: add missing end_iter check for sequence
+	  Avoid accessing the end-iter, this is a marker without a data field.
+
+2013-02-17 13:20:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstelement.c:
+	  docs: link to the appropriate messages from gst_elements_set_state() docs
+	  For an async state change return one would wait for ASYNC_DONE or STATE_CHANGED.
+
+2013-02-16 14:20:06 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstbuffer.h:
+	  buffer: add since marker for new COPY_DEEP buffer flag
+
+2013-02-16 14:59:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	  buffer: add option to deep copy a buffer
+	  Add a buffer copy flag to force a memory copy in all cases.
+
+2013-02-14 14:09:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  Revert "utils: Use gst_pad_get_pad_template() in gst_element_get_compatible_pad_template()"
+	  This reverts commit 1a1a9e143fb0e155d7627aa8e489cd5d04bc093c.
+	  This breaks the pipelines/tagschecking unit test for some reason
+	  (fakesrc ! capsfilter ! qtmux linking fails now). It might be
+	  a bug in the unit test of course, but someone will need to
+	  investigate this. Reverting for now.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692508
+
+2013-02-15 13:08:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstallocator.c:
+	  allocator: improve fallback copy function
+	  Only use the allocator of the copied memory when we can use the default
+	  _alloc function on it. Otherwise we will have to use the default
+	  allocator for the copy.
+
+2013-02-14 13:55:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/running.xml:
+	  docs: fix location in user's home directory where GStreamer looks for plugins
+	  It's based on the xdg user data dir now in 1.0.
+
+2013-01-25 06:50:27 -0300  Niv Sardi <xaiki@evilgiggle.com>
+
+	* gst/gstutils.c:
+	  utils: Use gst_pad_get_pad_template() in gst_element_get_compatible_pad_template()
+	  motivation comes from: /* FIXME: why not gst_pad_get_pad_template (pad); */
+	  this code path is quite nicer, we now only revert to creating the template
+	  if gst_pad_get_pad_template fails.
+	  with this fork, we gain a non-allocation of GstCaps *templcaps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692508
+
+2013-02-13 00:27:28 +0000  Krzysztof Konopko <krzysztof.konopko@gmail.com>
+
+	* tools/gst-launch.c:
+	  gst-launch: Use g_unix_signal_add() to handle keyboard interruption
+	  Current implementation uses a traditional signal handler and a 250ms
+	  timeout callback in the event loop.  Adding a GSource with
+	  g_unix_signal_add() to the GMainLoop is a much more elegant solution.
+	  The signal handler with this approach can send a message to the bus
+	  directly rather than set a flag as all dispatching intricacies are handled
+	  by GLib.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693481
+
+2013-02-14 00:07:22 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/gst/running.xml:
+	  docs: flesh our 'Running GStreamer' bits a bit
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693607
+
+2013-02-13 23:27:16 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/gst-launch.1.in:
+	  docs: flesh out gst-launch-1.0 man page a little
+	  Fix up default location of the registry.
+	  Mention more options for GST_DEBUG (wildcards and
+	  named debug levels).
+	  Explain what to do with the dot files that can be
+	  produced by setting GST_DEBUG_DUMP_DOT_DIR.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693607
+
+2012-12-27 00:03:06 +0100  Gert Michael Kulyk <gkulyk@yahoo.de>
+
+	* docs/manual/advanced-metadata.xml:
+	  docs: fix advanced-metadata code example in manual
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690751
+
 2013-02-13 16:52:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/gstmessage.c:
@@ -326,12 +2488,115 @@
 	  And simplify code a bit while at it.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=693704
 
+2013-02-13 17:00:23 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	* tests/check/gst/gstvalue.c:
+	  value: Remove set-style bitmask intersection/union/subtraction functions
+	  Set operations on the bitmasks don't make much sense and result
+	  in invalid caps when used as a channel-mask. They are now handled
+	  exactly like integers.
+	  This functionality was not used anywhere except for tests.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691370
+
+2013-02-13 11:19:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: The latency query should return TRUE by default, different to other queries
+	  Fixes unit test failures caused by f3d268de7f7fb1161778a9a95e0d54d8c89ef626
+
+2013-02-13 10:46:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gststructure.c:
+	* tests/check/gst/gstcaps.c:
+	  structure: Make sure that subsets have all fields of the superset
+	  "video/x-h264,parsed=(boolean)true" is not a superset of
+	  "video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal"
+	  for example.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693365
+
+2013-02-12 12:32:23 -0800  David Schleef <ds@schleef.org>
+
+	* win32/common/libgstbase.def:
+	  update exports for baseparse API changes
+
+2013-02-12 12:31:42 -0800  David Schleef <ds@schleef.org>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Fix doc typo
+
+2013-02-11 16:51:48 -0800  David Schleef <ds@schleef.org>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add gst_base_parse_set_ts_at_offset()
+	  Sets the buffer timestamps based on last seen timestamps at a
+	  particular offset into the frame.
+	  API: gst_base_parse_set_ts_at_offset()
+
+2013-02-11 16:42:41 -0800  David Schleef <ds@schleef.org>
+
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	  adapter: Add gst_adapter_prev_[pd]ts_at_offset()
+	  Original patch written by Michael Smith <msmith@rdio.com>.
+	  API: gst_adapter_prev_pts_at_offset()
+	  API: gst_adapter_prev_dts_at_offset()
+
+2013-02-09 18:14:09 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/gstbin.c:
+	  bin: query sink elements and source pads of the bin
+	  gst_bin_query() now forwards the query to the source pads as well if
+	  none of the sinks of the bin satisfied the query. This helps in the
+	  case of DURATION queries done a bin containing a source element.
+	  Fixes bug 638749
+
+2013-02-07 12:47:02 +0100  Alexander Schrab <alexas@axis.com>
+
+	* gst/gstbin.c:
+	  bin: Let gst_bin_send_event() send events to ghost pads as well
+
+2013-02-11 22:52:25 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstutils.c:
+	* libs/gst/base/gstbasesrc.c:
+	  compat: kill more uses of gst_pad_set_caps()
+
 2013-02-12 00:08:51 +1100  Tim 'mithro' Ansell <mithro@mithis.com>
 
 	* gst/gstvalue.c:
 	  gstvalue: Adding offset to GstSegment serialize/deserialize.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693587
 
+2013-02-09 12:32:02 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: improve PTS interpolating
+	  ... and tracking of DTS.  Fixes cases where PTS is locked on to the
+	  DTS of an incoming buffer with no PTS with invalid data, leading to
+	  no outgoing PTS (since it is not allowed smaller than DTS).
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
+
+2013-02-08 21:28:18 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-1.0.txt:
+	  docs: add more porting details
+
+2013-02-08 21:21:48 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolbinding.c:
+	* gst/gstobject.c:
+	* libs/gst/controller/gstdirectcontrolbinding.c:
+	  controlbinding: error handling for binding controlsources to wrong properties
+	  Add warning if property is not suitable for controlling. When adding a control-
+	  binding check that pspec!=NULL.
+
+2013-02-07 13:08:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: remove old docs about iterators
+
 2013-02-07 12:52:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/gstbin.c:
@@ -343,6 +2608,33 @@
 	* gst/gstbin.c:
 	  bin: reset GValue from iterator after usage
 
+2013-02-05 17:15:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/basesink.c:
+	  tests: add basesink test
+
+2013-02-05 17:19:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: handle sync of EOS after item without duration
+	  After a buffer or GAP without duration, an EOS event should be rendered
+	  immediately instead of waiting for the end of the segment.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692868
+
+2013-02-02 11:55:52 -0800  Nate Bogdanowicz <natezb@gmail.com>
+
+	* gst/gstpipeline.c:
+	  gstpipeline: fix failed assertion caused by seeking pipeline with NULL clock
+	  Under certain GST_STATE_CHANGED_PAUSED_TO_PLAYING transitions, a pipeline with
+	  a NULL clock will fail an assertion due to an unchecked call to gst_object_ref().
+	  This is fixed by simply adding a check and only ref-ing if the clock is not NULL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693065
+
+2013-02-05 13:44:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gststructure.h:
+	  structure: change argument name for docs
+
 2013-02-04 10:30:32 +0100  Stefan Sauer <ensonic@users.sf.net>
 
 	* gst/gstdebugutils.c:
@@ -365,39 +2657,13 @@
 	* docs/random/porting-to-1.0.txt:
 	  porting: a few updates for the porting guide
 
-2013-02-05 17:15:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* tests/check/libs/basesink.c:
-	  tests: add basesink test
-
-2013-02-05 17:19:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* libs/gst/base/gstbasesink.c:
-	  basesink: handle sync of EOS after item without duration
-	  After a buffer or GAP without duration, an EOS event should be rendered
-	  immediately instead of waiting for the end of the segment.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692868
-	  Conflicts:
-	  libs/gst/base/gstbasesink.c
-
-2013-02-02 11:55:52 -0800  Nate Bogdanowicz <natezb@gmail.com>
-
-	* gst/gstpipeline.c:
-	  gstpipeline: fix failed assertion caused by seeking pipeline with NULL clock
-	  Under certain GST_STATE_CHANGED_PAUSED_TO_PLAYING transitions, a pipeline with
-	  a NULL clock will fail an assertion due to an unchecked call to gst_object_ref().
-	  This is fixed by simply adding a check and only ref-ing if the clock is not NULL.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693065
-
 2013-01-30 13:06:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-	* plugins/elements/gstdataqueue.c:
+	* libs/gst/base/gstdataqueue.c:
 	  dataqueue: can't pass a GType through GINT_TO_POINTER
 	  Use GSIZE_TO_POINTER instead. sizeof(GType) may be larger
 	  than sizeof(gulong) and sizeof(int), so the casts may
 	  chop off some bits from the GType value on some architectures.
-	  Conflicts:
-	  plugins/elements/gstdataqueue.c
 
 2013-01-29 12:40:52 +0100  Alexander Schrab <alexas@axis.com>
 
@@ -423,36 +2689,45 @@
 
 2013-01-30 11:55:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-	* plugins/elements/gstqueuearray.c:
+	* libs/gst/base/gstqueuearray.c:
 	  queuearray: make _find() find the value if no compare function is provided
 	  Allow NULL as compare function for direct value lookup.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=692691
-	  Conflicts:
-	  plugins/elements/gstqueuearray.c
+
+2013-01-30 11:34:15 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/libs/queuearray.c:
+	  tests: check return value of gst_queue_array_drop_element() too
+	  Was added when the API was made public in git master.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692691
 
 2013-01-29 22:54:21 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* tests/check/libs/queuearray.c:
 	  tests: one more test for gst_queue_array_drop_element()
 	  https://bugzilla.gnome.org/show_bug.cgi?id=692691
-
-2013-01-30 09:11:24 +0100  Alexander Schrab <alexas@axis.com>
-
-	* tests/check/libs/queuearray.c:
-	  tests: add checks for gst_queue_array_find() and _drop_element()
-	  https://bugzilla.gnome.org/show_bug.cgi?id=692691
+	  Conflicts:
+	  tests/check/libs/queuearray.c
 
 2013-01-28 11:05:28 +0100  Alexander Schrab <alexas@axis.com>
 
-	* plugins/elements/gstqueuearray.c:
+	* libs/gst/base/gstqueuearray.c:
 	  queuearray: fix gst_queue_array_find()
 	  https://bugzilla.gnome.org/show_bug.cgi?id=692691
 
 2013-01-28 11:05:28 +0100  Alexander Schrab <alexas@axis.com>
 
-	* plugins/elements/gstqueuearray.c:
+	* libs/gst/base/gstqueuearray.c:
 	  queuearray: fix gst_queue_array_drop_element()
 	  https://bugzilla.gnome.org/show_bug.cgi?id=692691
+	  Conflicts:
+	  libs/gst/base/gstqueuearray.c
+
+2013-01-29 16:55:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* libs/gst/base/gstbitreader-docs.h:
+	  docs: align the comments correctly with the declaration in bitreader docs
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692809
 
 2013-01-29 09:45:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
@@ -462,6 +2737,18 @@
 	  NOT_NEGOTIATED error. We only want to retry negotiation if the result from
 	  gst_pad_push() returned NOT_NEGOTIATED.
 
+2013-01-28 20:41:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From a942293 to 2de221c
+
+2013-01-28 13:05:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/examples/streams/stream-status.c:
+	  example: fix FIXME in example
+	  Use setpriority to raise priority
+
 2013-01-27 06:20:51 -0800  Simon Feltman <sfeltman@src.gnome.org>
 
 	* gst/Makefile.am:
@@ -471,6 +2758,17 @@
 	  typeless due to the GType not being included as an annotation.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=691185
 
+2013-01-27 09:18:00 +0530  B.Prathibha <prathibhab@cdac.in>
+
+	* tests/check/pipelines/stress.c:
+	  tests: use g_timeout_add_seconds in pipeline stress test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692612
+
+2013-01-24 17:50:31 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	  docs: Put the right path for the gstttestclock include file
+
 2013-01-24 15:50:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* docs/pwg/advanced-negotiation.xml:
@@ -497,6 +2795,16 @@
 	  Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691986
 
+2013-01-19 12:51:56 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* tests/check/gst/gstpad.c:
+	* win32/common/libgstreamer.def:
+	  pad: add gst_pad_get_stream_id() utility function
+	  API: gst_pad_get_stream_id()
+
 2013-01-18 16:05:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* tools/gst-launch.1.in:
@@ -510,6 +2818,16 @@
 	  There are more debug levels these days, not only 0-5.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=692015
 
+2013-01-17 00:38:14 -0600  Daniel Díaz <yosoy@danieldiaz.org>
+
+	* tests/check/gst/gstabi.c:
+	* tests/check/gst/struct_arm.h:
+	* tests/check/libs/libsabi.c:
+	* tests/check/libs/struct_arm.h:
+	  tests: fix ABI check struct sizes for ARM
+	  and re-enable ABI check for ARM.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691828
+
 2013-01-16 17:24:42 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* libs/gst/base/gstadapter.c:
@@ -523,6 +2841,72 @@
 	  tests: disable ABI checks for architectures where the struct sizes are not up-to-date
 	  https://bugzilla.gnome.org/show_bug.cgi?id=691828
 
+2013-01-15 15:03:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 2a068ce to a942293
+
+2013-01-15 13:47:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/Makefile.am:
+	* docs/libs/Makefile.am:
+	* docs/plugins/Makefile.am:
+	* gst/Makefile.am:
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	* tests/check/Makefile.am:
+	  Use GST_*_1_0 environment variables everywhere
+	  The _1_0 suffixed environment variables override the
+	  non-suffixed ones, so if we're in an environment that
+	  sets the _1_0 suffixed ones, such as jhbuild, we need
+	  to set those to make sure ours actually always get
+	  used.
+
+2013-01-15 13:47:13 +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 for new translated string
+
 2013-01-15 09:42:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/gstpipeline.c:
@@ -550,6 +2934,22 @@
 	* libs/gst/base/gstadapter.c:
 	  adapter: handle map failure
 
+2013-01-13 14:45:31 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add vfuncs to intercept queries
+	  Useful for video parses that want to attach matter or
+	  find out if downstream supports certain metas.
+	  API: GstBaseParseClass::src_query()
+	  API: GstBaseParseClass::sink_query()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691475
+
+2013-01-12 20:54:26 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: fix up name of default event vfuncs
+
 2013-01-10 11:34:14 +0100  Stefan Sauer <ensonic@users.sf.net>
 
 	* docs/gst/gstreamer-sections.txt:
@@ -563,22 +2963,6 @@
 	* gst/gstcontrolsource.c:
 	  docs: improve api docs for controlsource and -binding
 
-=== release 1.0.5 ===
-
-2013-01-08 00:36:05 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-coreelements.xml:
-	* gstreamer.doap:
-	* po/sl.po:
-	* win32/common/config.h:
-	* win32/common/gstenumtypes.c:
-	* win32/common/gstversion.h:
-	  Release 1.0.5
-
 2013-01-05 16:30:04 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* tests/check/gst/gstghostpad.c:
@@ -586,16 +2970,29 @@
 	  The created pad is never used and overwritten with
 	  another newly-created pad a few lines below.
 
-2013-01-04 12:50:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
-
-	* gst/gstbin.h:
-	  docs: update since markers for new NO_RESYNC flag
-
 2013-01-04 12:27:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/gstsystemclock.h:
 	  docs: minor systemsclock doc fix
 
+2013-01-03 10:16:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: Initialize uninitialized variable
+
+2012-12-30 23:35:48 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	  adapter: return gssize from gst_adapter_masked_scan_* functions
+	  As the return value of this function is -1 when the match is not found
+
+2013-01-01 10:23:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: Check if buffers are too late before calling prepare/prepare_list
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690936
+
 2012-12-30 23:48:47 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* configure.ac:
@@ -604,6 +3001,24 @@
 	  https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
 	  https://bugzilla.gnome.org/show_bug.cgi?id=690881
 
+2012-12-22 16:50:49 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstcaps.c:
+	* gst/gststructure.c:
+	* gst/gsttaglist.c:
+	  caps, structure,  taglist: micro-optimisations
+	  Avoid some unnecessary GValue copying by making use of
+	  gst_structure_id_take_value() where possible.
+
+2012-12-22 16:29:03 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstvalue.c:
+	  gstvalue: some micro-optimisations
+	  Avoid unnecessary value copying, and unnecessary init/unset
+	  cycles which all go through the value table. There's a bunch
+	  of places where we copy a value and then unset it in the next
+	  line, instead of just taking over the source value.
+
 2012-12-22 16:53:47 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
 
 	* scripts/create-uninstalled-setup.sh:
@@ -632,44 +3047,33 @@
 	  Add an OTHER clock type so that subclasses are able to mark themselves as
 	  using some other clock source than the realtime or monotonic clock.
 
-=== release 1.0.4 ===
+2012-12-20 13:31:02 +0100  Branko Subasic <branko@axis.com>
 
-2012-12-18 17:25:34 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: correct overrun handling
+	  The control of wheteher a SingleQueue is full is not correct.
+	  Rewrote single_queue_overrun_cb() so it checks the correct variables
+	  when checking if the queue has reached the hard limits, and to
+	  increase the max buffer limit once for each call.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690557
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-coreelements.xml:
-	* gstreamer.doap:
-	* win32/common/config.h:
-	* win32/common/gstenumtypes.c:
-	* win32/common/gstversion.h:
-	  Release 1.0.4
+2012-12-20 11:59:54 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-12-18 17:09:18 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* plugins/elements/gstqueue2.c:
+	  queue2: implement buffering query for all modes
+	  Also implement the buffering query for STREAM mode.
 
-	* po/LINGUAS:
-	* po/de.po:
-	* po/fr.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/nl.po:
-	* po/pl.po:
-	* po/ru.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	  po: update translations
+2012-12-20 11:30:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-12-14 11:09:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* plugins/elements/gstqueue2.c:
+	  queue2: refactor buffering percent and stats
+	  Make methods to get the current buffering percent and the stats. We will use
+	  this in the query later.
 
-	* gst/gstsample.c:
-	* gst/gststructure.c:
-	  add debug category
-	  Adding a debug category is nicer than logging to the default category
+2012-12-13 13:47:29 +0100  Arnaud Vrac <avrac@freebox.fr>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: fix invalid output timestamps in some cases
 
 2012-12-14 15:22:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
@@ -682,6 +3086,23 @@
 	* plugins/elements/gstoutputselector.c:
 	  NEWSEGMENT -> SEGMENT
 
+2012-12-14 14:03:43 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/gstreamer-plugins.args:
+	* docs/plugins/gstreamer-plugins.prerequisites:
+	* docs/plugins/gstreamer-plugins.signals:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/random/porting-to-1.0.txt:
+	  docs: update plugin docs
+	  Update args/signals etc.
+
+2012-12-14 11:09:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstsample.c:
+	* gst/gststructure.c:
+	  add debug category
+	  Adding a debug category is nicer than logging to the default category
+
 2012-12-14 11:08:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/gstelement.c:
@@ -695,16 +3116,40 @@
 	  successfull calls to _start are paired with a _stop.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687845
 
+2012-12-12 16:44:14 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/base/base.h:
+	* libs/gst/base/gstbase.h:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/check/check.h:
+	* libs/gst/check/gstcheck.h:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/controller.h:
+	* libs/gst/controller/gstcontroller.h:
+	* libs/gst/net/Makefile.am:
+	* libs/gst/net/net.h:
+	  libs: Use foo/foo.h as single-include header consistently everywhere
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688785
+
+2012-12-11 16:46:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: pass DTS and PTS to handle_buffer
+	  This makes it handle the timestamps correctly and avoids using a wrong timestamp
+	  for the output.
+
 2012-12-11 16:46:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* libs/gst/base/gstbaseparse.c:
 	  baseparse: improve debug
 	  Add pts and dts in debug log
 
-2012-11-26 00:51:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-03 16:59:39 +0000  Andrzej Bieniek <andyhelp@gmail.com>
 
-	* docs/gst/gstreamer-sections.txt:
-	  docs: clean up sections file for pad probe defines that moved into enum
+	* tools/gst-launch.c:
+	  gst-launch: report execution time in GST_TIME_FORMAT
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687523
 
 2012-12-10 11:55:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
@@ -738,15 +3183,65 @@
 	* gst/gstmessage.c:
 	  message: add reset-time type string
 
+2012-11-30 10:41:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: remove some casts
+
 2012-11-28 18:08:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* docs/random/porting-to-1.0.txt:
 	  docs: add link to python porting doc and app dev manual to porting-to-1.0.txt
 
+2012-11-28 17:36:55 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* configure.ac:
+	  configure.ac: Update libtool versioning
+	  In order for 1.x and 1.(x+1) versions to not invade on each other
+	  we need to have different lib versions.
+	  So we need a consistent and predictable scheme:
+	  library version number = MINOR * 100 + MICRO
+	  Ex:
+	  1.0.0 => 0 (duh)
+	  1.0.3 => 3
+	  1.1.0 => 100
+	  1.1.1 => 101
+	  1.2.0 => 120
+	  1.10.5 => 1005
+	  ....
+
 2012-11-26 18:16:52 -0500  Luis de Bethencourt <luis@debethencourt.com>
 
 	* scripts/gst-uninstalled:
-	  gst-uninstalled: add gst-editing-services to PKG_CONFIG_PATH
+	  add gst-editing-services to PKG_CONFIG_PATH
+
+2012-11-26 00:51:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: clean up sections file for pad probe defines that moved into enum
+
+2012-11-26 00:20:26 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	* gst/Makefile.am:
+	* pkgconfig/gstreamer-uninstalled.pc.in:
+	* pkgconfig/gstreamer.pc.in:
+	  gst: don't require gthread-2.0
+	  We don't need to link to gthread-2.0 any longer, since all
+	  the normal thread-related stuff is in GLib proper, and we
+	  don't use g_thread_init() any more.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689043
+
+2012-11-25 23:42:57 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* pkgconfig/gstreamer-uninstalled.pc.in:
+	* pkgconfig/gstreamer.pc.in:
+	  gstreamer-1.0.pc: move gmodule-no-export-2.0 dependency to Requires.private
+	  Users of GStreamer are not generally expected to use the GModule API
+	  directly. so don't force them all to link against it.
+	  While we're at it, no need to define this via configure.ac really, just
+	  put the dependencies directly into the .pc.in file.
 
 2012-11-25 23:26:47 +0000  Tim-Philipp Müller <tim@centricular.net>
 
@@ -757,6 +3252,12 @@
 	  It's been deprecated since GLib 2.32 and isn't needed any
 	  longer.
 
+2012-11-25 18:11:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/gstdataqueue.c:
+	  dataqueue: reduce debug log spam a bit
+	  Log locking/unlocking with TRACE debug level.
+
 2012-11-23 21:09:45 +0100  Alessandro Decina <alessandro.d@gmail.com>
 
 	* gst/gstevent.c:
@@ -767,6 +3268,17 @@
 	* gst/gstpad.h:
 	  pad: document more pad probe values
 
+2012-11-23 13:34:24 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/check/gsttestclock.h:
+	  testclock: remove unnecessary include
+
+2012-11-23 13:32:07 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/gst/gstclock.c:
+	  tests: fix clock unit test build failure after header changes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688785
+
 2012-11-23 12:47:25 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst/gstpad.h:
@@ -780,27 +3292,21 @@
 	  pad: Put all of the probe types in the enum so they work with bindings
 	  https://bugzilla.gnome.org/show_bug.cgi?id=688804
 
-2012-11-21 12:52:51 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-20 23:13:33 -0800  Evan Nemerson <evan@coeus-group.com>
 
-	* configure.ac:
-	* docs/plugins/inspect/plugin-coreelements.xml:
-	* win32/common/config.h:
-	* win32/common/gstversion.h:
-	  Back to development (bug-fixing)
+	* libs/gst/base/Makefile.am:
+	* libs/gst/base/gstbase.h:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/check/gstcheck.h:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/gstcontroller.h:
+	* libs/gst/net/gstnet.h:
+	  libs: Add missing single include headers and use them in GIRs
 
-=== release 1.0.3 ===
+2012-11-20 16:34:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-21 09:31:07 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-coreelements.xml:
-	* gstreamer.doap:
-	* win32/common/config.h:
-	* win32/common/gstversion.h:
-	  Release 1.0.3
+	* tests/check/libs/gsttestclock.c:
+	  tests: don't use deprecated thread API
 
 2012-11-20 16:19:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
@@ -813,11 +3319,72 @@
 	  basesink: reset START_TIME when needed
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685870
 
+2012-11-20 15:37:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstvalue.h:
+	  value: Make G-I happy by hiding gst_g_thread_get_type()
+
+2012-11-20 15:07:37 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* gstreamer.spec.in:
+	  Remove xfig from spec file
+
+2012-11-20 15:06:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  value: Use the GLib GType for GThread if compiling against GLib 2.35.3 or newer
+
+2012-11-20 12:56:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: Don't set the locale in gst_init()
+	  The function init_pre() in gstreamer/gst/gst.c calls setlocale(LC_ALL, ""),
+	  which sets the locale to the values specified in the environment.  This is
+	  wrong for two reasons:
+	  1. It is absolutely not the task of a library to decide on the correct locale
+	  for a program.  Some programs change the locale for various (good or bad)
+	  reasons, and libraries should respect that.  Programs where GStreamer's
+	  overwriting of the locale causes bugs include Emacs [1, 2], Sublime Text [3],
+	  and Lua [4].
+	  [1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12392
+	  [2] http://bugzilla.novell.com/show_bug.cgi?id=779426
+	  [3] http://www.sublimetext.com/forum/viewtopic.php?f=3&t=8543
+	  [4] https://github.com/pavouk/lgi/issues/19
+	  Note that setting the locale can cause problems for programs that are not even
+	  linked against GStreamer.  In the case of Emacs, for example, GStreamer seems
+	  to be initialized through GTK via libcanberra.
+	  2. Setting the locale is not thread-safe, and therefore should not be done in a
+	  library.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=685650
+
 2012-11-16 19:41:48 +0100  Arnaud Vrac <avrac@freebox.fr>
 
 	* libs/gst/base/gstbaseparse.c:
 	  baseparse: forward stream-start event in push mode
 
+2012-11-19 13:38:30 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* docs/README:
+	* docs/manual/state-diagram.fig:
+	* docs/random/wtay/player.fig:
+	  Remove two last .fig files from build, they are now replaced with .svg files. That said I don't think either .fig file was still being used anywhere. With this change and the one in common GStreamer no longer depends on xfig.
+
+2012-11-19 13:16:48 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	  Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gstreamer
+
+2012-11-19 11:23:32 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From b497c4f to a72faea
+
+2012-11-19 11:45:07 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* docs/manual/state-diagram.svg:
+	* docs/random/wtay/player.svg:
+	  Add SVG versions of .fig file
+
 2012-11-17 10:27:11 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* tests/examples/manual/Makefile.am:
@@ -831,6 +3398,143 @@
 	  inputselector: fix clock leak in wait_running_time
 	  https://bugzilla.gnome.org/show_bug.cgi?id=688477
 
+2012-11-17 00:13:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstcompat.h:
+	  gstcompat.h: move more deprecated API into the deprecated section
+	  https://bugzilla.gnome.org/show_bug.cgi?id=675598
+
+2012-11-14 12:20:54 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/gsttask.c:
+	  task: documentation update
+	  GStaticRecMutex usage has been replaced by GRecMutex, reflect this
+	  change in the documentation.
+
+2012-11-14 10:55:15 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/check/gsttestclock.c:
+	  testclock: port to new GLib threading API
+
+2012-11-13 23:11:34 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstcompat.h:
+	* libs/gst/base/gstadapter.c:
+	* tests/check/libs/adapter.c:
+	  tests: gst_adapter_prev_timestamp -> gst_adapter_prev_pts
+	  https://bugzilla.gnome.org/show_bug.cgi?id=675598
+
+2012-11-13 22:42:05 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/check/gsttestclock.c:
+	* libs/gst/check/gsttestclock.h:
+	* tests/check/libs/.gitignore:
+	  testclock: minor cleanups, add since markers for gtk-doc
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683012
+
+2012-08-30 01:58:41 +0200  Sebastian Rasmussen <sebrn@axis.com>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/check/gsttestclock.c:
+	* libs/gst/check/gsttestclock.h:
+	* tests/check/libs/gsttestclock.c:
+	  check: allow GstTestClock to handle clock notifications
+	  API: gst_test_clock_peek_id_count()
+	  API: gst_test_clock_has_id()
+	  API: gst_test_clock_peek_next_pending_id()
+	  API: gst_test_clock_wait_for_next_pending_id()
+	  API: gst_test_clock_wait_for_pending_id_count()
+	  API: gst_test_clock_process_next_clock_id()
+	  API: gst_test_clock_get_next_entry_time()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683012
+
+2012-11-13 21:29:01 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/check/Makefile.am:
+	  check: add dependency on gstcheck header files for exports.sym
+	  So exports.sym gets updated correctly, and our new symbols get
+	  exported correctly, which makes g-ir-scanner much happier in
+	  terms of linking.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683012
+
+2012-08-29 16:11:10 +0200  Sebastian Rasmussen <sebrn@axis.com>
+
+	* docs/libs/Makefile.am:
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* docs/libs/gstreamer-libs.types:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/check/gsttestclock.c:
+	* libs/gst/check/gsttestclock.h:
+	* tests/check/Makefile.am:
+	* tests/check/libs/gsttestclock.c:
+	  check: add GstTestClock as a deterministic clock for testing
+	  API: GstTestClock
+	  API: gst_test_clock_new()
+	  API: gst_test_clock_new_with_start_time()
+	  API: gst_test_clock_set_time()
+	  API: gst_test_clock_advance_time()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683012
+
+2012-11-09 21:10:42 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: fix debug message
+
+2012-11-08 20:22:19 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gststructure.h:
+	  structure: re-indent header file
+	  Tabs to spaces.
+
+2012-11-12 11:40:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* win32/common/libgstbase.def:
+	* win32/common/libgstreamer.def:
+	  value: API: Add boxed type for GThread
+
+2012-11-12 10:30:08 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: Fix indention for printing typefinder features
+
+2012-11-12 01:40:42 +0100  Sebastian Rasmussen <sebrn@axis.com>
+
+	* gst/gstinfo.c:
+	  info: fix compiler warning when debugging disabled
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688130
+
+2012-11-10 09:50:49 +0100  Alessandro Decina <alessandro.d@gmail.com>
+
+	* plugins/elements/gstqueue.c:
+	  queue: remove unused label. Fixes compiler warning.
+
+2012-10-29 12:08:31 +0000  Alessandro Decina <alessandro.d@gmail.com>
+
+	* plugins/elements/gstqueue.c:
+	* tests/check/elements/queue.c:
+	  queue: don't fail in _sink_event for sticky events
+	  Implement the same behaviour as gst_pad_push_event when pushing sticky events
+	  fails, that is don't fail immediately but fail when data flow resumes and upstream
+	  can aggregate properly.
+	  This fixes segment seeks with decodebin and unlinked audio or video branches.
+	  Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=687899
+
+2012-11-09 16:50:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	  basesink: add simple rate control
+	  Add a max-bitrate property that will slightly delay rendering of buffers if it
+	  would exceed the maximum defined bitrate. This can be used to do
+	  rate control on network sinks, for example.
+	  API: GstBaseSink::max-bitrate
+	  API: gst_base_sink_set_max_bitrate()
+	  API: gst_base_sink_get_max_bitrate()
+
 2012-11-08 15:33:01 +1100  Matthew Waters <ystreet00@gmail.com>
 
 	* gst/gstbufferpool.c:
@@ -838,6 +3542,416 @@
 	  Fixes deadlock on Windows
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687896
 
+2012-11-07 18:15:11 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: update courtesy of autoupdate
+
+2012-11-07 17:59:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  common: update for AG_GST_PLUGIN_DOCS python checks
+
+2012-11-06 18:29:28 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* docs/gst/running.xml:
+	* tools/gst-launch.1.in:
+	  Document GST_DEBUG_FILE
+
+2012-11-06 17:03:47 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: fix alignment of rank, etc.
+
+2012-11-06 16:58:04 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* plugins/elements/gstelements.c:
+	  elements: fix leading space in plugin description string
+
+2012-11-03 20:44:48 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* COPYING:
+	* docs/random/LICENSE:
+	* gst/gettext.h:
+	* gst/glib-compat-private.h:
+	* gst/glib-compat.c:
+	* gst/glib-compat.h:
+	* gst/gst-i18n-app.h:
+	* gst/gst-i18n-lib.h:
+	* gst/gst.c:
+	* gst/gst.h:
+	* gst/gst_private.h:
+	* gst/gstallocator.c:
+	* gst/gstallocator.h:
+	* gst/gstatomicqueue.c:
+	* gst/gstatomicqueue.h:
+	* gst/gstbin.c:
+	* gst/gstbin.h:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstbufferlist.c:
+	* gst/gstbufferlist.h:
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* gst/gstchildproxy.c:
+	* gst/gstchildproxy.h:
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	* gst/gstcompat.h:
+	* gst/gstconfig.h.in:
+	* gst/gstcontrolbinding.c:
+	* gst/gstcontrolbinding.h:
+	* gst/gstcontrolsource.c:
+	* gst/gstcontrolsource.h:
+	* gst/gstdatetime.c:
+	* gst/gstdatetime.h:
+	* gst/gstdebugutils.c:
+	* gst/gstdebugutils.h:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstelementfactory.c:
+	* gst/gstelementfactory.h:
+	* gst/gstelementmetadata.h:
+	* gst/gsterror.c:
+	* gst/gsterror.h:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstformat.c:
+	* gst/gstformat.h:
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	* gst/gstiterator.c:
+	* gst/gstiterator.h:
+	* gst/gstmacros.h:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* gst/gstminiobject.c:
+	* gst/gstminiobject.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstpadtemplate.c:
+	* gst/gstpadtemplate.h:
+	* gst/gstparamspecs.c:
+	* gst/gstparamspecs.h:
+	* gst/gstparse.c:
+	* gst/gstparse.h:
+	* gst/gstpipeline.c:
+	* gst/gstpipeline.h:
+	* gst/gstplugin.c:
+	* gst/gstplugin.h:
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginfeature.h:
+	* gst/gstpluginloader.c:
+	* gst/gstpluginloader.h:
+	* gst/gstpoll.c:
+	* gst/gstpoll.h:
+	* gst/gstpreset.c:
+	* gst/gstpreset.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* gst/gstregistry.c:
+	* gst/gstregistry.h:
+	* gst/gstregistrybinary.c:
+	* gst/gstregistrybinary.h:
+	* gst/gstregistrychunks.c:
+	* gst/gstregistrychunks.h:
+	* gst/gstsample.c:
+	* gst/gstsample.h:
+	* gst/gstsegment.c:
+	* gst/gstsegment.h:
+	* gst/gststructure.c:
+	* gst/gststructure.h:
+	* gst/gstsystemclock.c:
+	* gst/gstsystemclock.h:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* gst/gsttagsetter.c:
+	* gst/gsttagsetter.h:
+	* gst/gsttask.c:
+	* gst/gsttask.h:
+	* gst/gsttaskpool.c:
+	* gst/gsttaskpool.h:
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	* gst/gsttocsetter.c:
+	* gst/gsttocsetter.h:
+	* gst/gsttrace.c:
+	* gst/gsttrace.h:
+	* gst/gsttypefind.c:
+	* gst/gsttypefind.h:
+	* gst/gsttypefindfactory.c:
+	* gst/gsttypefindfactory.h:
+	* gst/gsturi.c:
+	* gst/gsturi.h:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* gst/gstversion.h.in:
+	* gst/math-compat.h:
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.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:
+	* libs/gst/base/gstbasetransform.h:
+	* libs/gst/base/gstbitreader-docs.h:
+	* libs/gst/base/gstbitreader.c:
+	* libs/gst/base/gstbitreader.h:
+	* libs/gst/base/gstbytereader-docs.h:
+	* libs/gst/base/gstbytereader.c:
+	* libs/gst/base/gstbytereader.h:
+	* libs/gst/base/gstbytewriter-docs.h:
+	* libs/gst/base/gstbytewriter.c:
+	* libs/gst/base/gstbytewriter.h:
+	* libs/gst/base/gstcollectpads.c:
+	* libs/gst/base/gstcollectpads.h:
+	* libs/gst/base/gstdataqueue.c:
+	* libs/gst/base/gstdataqueue.h:
+	* libs/gst/base/gstindex.c:
+	* libs/gst/base/gstindex.h:
+	* libs/gst/base/gstmemindex.c:
+	* libs/gst/base/gstpushsrc.c:
+	* libs/gst/base/gstpushsrc.h:
+	* libs/gst/base/gstqueuearray.c:
+	* libs/gst/base/gstqueuearray.h:
+	* libs/gst/base/gsttypefindhelper.c:
+	* libs/gst/base/gsttypefindhelper.h:
+	* libs/gst/check/gstbufferstraw.c:
+	* libs/gst/check/gstbufferstraw.h:
+	* libs/gst/check/gstcheck.c:
+	* libs/gst/check/gstcheck.h:
+	* libs/gst/check/gstconsistencychecker.c:
+	* libs/gst/check/gstconsistencychecker.h:
+	* libs/gst/check/libcheck/check.c:
+	* libs/gst/check/libcheck/check.h.in:
+	* libs/gst/check/libcheck/check_error.c:
+	* libs/gst/check/libcheck/check_error.h:
+	* libs/gst/check/libcheck/check_impl.h:
+	* libs/gst/check/libcheck/check_list.c:
+	* libs/gst/check/libcheck/check_list.h:
+	* libs/gst/check/libcheck/check_log.c:
+	* libs/gst/check/libcheck/check_log.h:
+	* libs/gst/check/libcheck/check_msg.c:
+	* libs/gst/check/libcheck/check_msg.h:
+	* libs/gst/check/libcheck/check_pack.c:
+	* libs/gst/check/libcheck/check_pack.h:
+	* libs/gst/check/libcheck/check_print.c:
+	* libs/gst/check/libcheck/check_print.h:
+	* libs/gst/check/libcheck/check_run.c:
+	* libs/gst/check/libcheck/check_str.c:
+	* libs/gst/check/libcheck/check_str.h:
+	* libs/gst/controller/gstargbcontrolbinding.c:
+	* libs/gst/controller/gstargbcontrolbinding.h:
+	* libs/gst/controller/gstdirectcontrolbinding.c:
+	* libs/gst/controller/gstdirectcontrolbinding.h:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.h:
+	* 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:
+	* libs/gst/controller/gsttriggercontrolsource.h:
+	* libs/gst/helpers/gst-plugin-scanner.c:
+	* libs/gst/net/gstnet.h:
+	* libs/gst/net/gstnetaddressmeta.c:
+	* libs/gst/net/gstnetaddressmeta.h:
+	* 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:
+	* plugins/elements/gstcapsfilter.c:
+	* plugins/elements/gstcapsfilter.h:
+	* plugins/elements/gstelements.c:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesink.h:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstfakesrc.h:
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsink.h:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstfdsrc.h:
+	* plugins/elements/gstfilesink.c:
+	* plugins/elements/gstfilesink.h:
+	* plugins/elements/gstfilesrc.c:
+	* plugins/elements/gstfilesrc.h:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gstidentity.h:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstinputselector.h:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstmultiqueue.h:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstoutputselector.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:
+	* plugins/elements/gsttypefindelement.c:
+	* plugins/elements/gsttypefindelement.h:
+	* plugins/elements/gstvalve.c:
+	* plugins/elements/gstvalve.h:
+	* scripts/create-uninstalled-setup.sh:
+	* scripts/five-bugs-a-day.pl:
+	* tests/benchmarks/caps.c:
+	* tests/benchmarks/capsnego.c:
+	* tests/benchmarks/complexity.c:
+	* tests/benchmarks/controller.c:
+	* tests/benchmarks/gstbufferstress.c:
+	* tests/benchmarks/gstclockstress.c:
+	* tests/benchmarks/gstpollstress.c:
+	* tests/benchmarks/init.c:
+	* tests/benchmarks/mass-elements.c:
+	* tests/check/elements/capsfilter.c:
+	* tests/check/elements/fakesink.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/multiqueue.c:
+	* tests/check/elements/queue.c:
+	* tests/check/elements/queue2.c:
+	* tests/check/elements/selector.c:
+	* tests/check/elements/tee.c:
+	* tests/check/elements/valve.c:
+	* tests/check/generic/sinks.c:
+	* tests/check/generic/states.c:
+	* tests/check/gst/gst.c:
+	* tests/check/gst/gstabi.c:
+	* tests/check/gst/gstatomicqueue.c:
+	* tests/check/gst/gstbin.c:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstbufferlist.c:
+	* tests/check/gst/gstbus.c:
+	* tests/check/gst/gstcaps.c:
+	* tests/check/gst/gstchildproxy.c:
+	* tests/check/gst/gstclock.c:
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/gst/gstdatetime.c:
+	* tests/check/gst/gstelement.c:
+	* tests/check/gst/gstelementfactory.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstindex.c:
+	* tests/check/gst/gstinfo.c:
+	* tests/check/gst/gstiterator.c:
+	* tests/check/gst/gstmemory.c:
+	* tests/check/gst/gstmessage.c:
+	* tests/check/gst/gstmeta.c:
+	* tests/check/gst/gstminiobject.c:
+	* tests/check/gst/gstobject.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gstparamspecs.c:
+	* tests/check/gst/gstpipeline.c:
+	* tests/check/gst/gstplugin.c:
+	* tests/check/gst/gstpoll.c:
+	* tests/check/gst/gstpreset.c:
+	* tests/check/gst/gstquery.c:
+	* tests/check/gst/gstregistry.c:
+	* tests/check/gst/gstsegment.c:
+	* tests/check/gst/gststructure.c:
+	* tests/check/gst/gstsystemclock.c:
+	* tests/check/gst/gsttag.c:
+	* tests/check/gst/gsttagsetter.c:
+	* tests/check/gst/gsttask.c:
+	* tests/check/gst/gsttoc.c:
+	* tests/check/gst/gsttocsetter.c:
+	* tests/check/gst/gsturi.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/gst/gstvalue.c:
+	* tests/check/libs/adapter.c:
+	* tests/check/libs/basesink.c:
+	* tests/check/libs/basesrc.c:
+	* tests/check/libs/bitreader.c:
+	* tests/check/libs/bytereader.c:
+	* tests/check/libs/bytewriter.c:
+	* tests/check/libs/collectpads.c:
+	* tests/check/libs/controller.c:
+	* tests/check/libs/gstlibscpp.cc:
+	* tests/check/libs/gstnetclientclock.c:
+	* tests/check/libs/gstnettimeprovider.c:
+	* tests/check/libs/libsabi.c:
+	* tests/check/libs/queuearray.c:
+	* tests/check/libs/transform1.c:
+	* tests/check/libs/typefindhelper.c:
+	* tests/check/pipelines/cleanup.c:
+	* tests/check/pipelines/parse-disabled.c:
+	* tests/check/pipelines/parse-launch.c:
+	* tests/check/pipelines/queue-error.c:
+	* tests/check/pipelines/seek.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	* tests/check/pipelines/stress.c:
+	* tests/check/tools/gstinspect.c:
+	* tests/examples/memory/my-memory.c:
+	* tests/examples/memory/my-memory.h:
+	* tests/examples/memory/my-vidmem.c:
+	* tests/examples/memory/my-vidmem.h:
+	* tests/examples/metadata/read-metadata.c:
+	* tests/examples/streams/testrtpool.c:
+	* tests/examples/streams/testrtpool.h:
+	* tests/examples/typefind/typefind.c:
+	* tests/misc/network-clock-utils.scm:
+	* tests/misc/network-clock.scm:
+	* tools/gst-inspect.c:
+	* tools/gst-launch.c:
+	* tools/gst-typefind.c:
+	* tools/tools.h:
+	* win32/common/gstconfig.h:
+	* win32/common/gstversion.h:
+	  Fix FSF address
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687520
+
+2012-10-31 19:33:30 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/gstreamer-plugins.args:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	  queue: add "flush-on-eos" property
+	  In flush-on-eos=true mode any data remaining in the queue is
+	  discarded when an EOS event is received, and the EOS passed
+	  downstream as soon as possible (instead of waiting for all
+	  buffers in the queue to get processed by downstream first).
+	  May or may not be useful in capture/encoding scenarios.
+
+2012-10-31 18:32:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  common: update for python detection
+	  Fixes docs build.
+
+2012-10-31 17:37:37 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	* configure.ac:
+	  configure: let AG_GST_PLUGIN_DOCS check for python
+	  And update common for move from AS_PATH_PYTHON to AM_PATH_PYTHON,
+	  which as a side-effect should pick up newer python versions as well.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=563903
+
 2012-10-30 10:04:44 +1100  Jan Schmidt <thaytan@noraisin.net>
 
 	* libs/gst/base/gstcollectpads.c:
@@ -849,6 +3963,23 @@
 	* plugins/elements/gstmultiqueue.c:
 	  multiqueue: Add EOS status to debug output about filled/unfilled
 
+2012-10-22 00:31:09 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+	* tests/check/libs/collectpads.c:
+	  check: Add a simple test for the CollectPads buffer collect callback
+
+2012-10-29 13:26:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	  g-i: fix "can't resolve libraries to shared libraries: gstcheck-1.0" build error
+	  Revert --library=libfoo-1.0.la -> --library=foo-1.0 change made
+	  in previous commit. Turns out that was wrong, despite what the
+	  man page says.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=603710
+
 2012-10-29 11:30:30 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst/gstutils.c:
@@ -866,13 +3997,88 @@
 	  entries.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=666053
 
-2012-10-25 12:03:18 +0100  Tim-Philipp Müller <tim@centricular.net>
+2012-10-28 17:17:49 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	  libs: g-i: avoid multiple libraries in the shared-library tag
+	  Using multiple libraries causes problems for the C# bindings and
+	  will for similiar languages such as Java when there are bindings
+	  for them.
+	  Also change --library=libgstfoo-X.la to --library=gstfoo-X as
+	  the man page suggests it should be done.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679315
+
+2012-10-28 15:53:19 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginfeature.h:
+	* win32/common/libgstreamer.def:
+	  pluginfeature: add gst_plugin_feature_get_plugin_name()
+	  API: gst_plugin_feature_get_plugin_name()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=571832
+
+2012-10-27 14:40:14 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/gstinfo.c:
+	  info: allow setting of GST_DEBUG levels by name
+	  e.g. GST_DEBUG=*:INFO,*src:LOG
+
+2012-06-29 12:38:52 -0400  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst/gst.c:
+	  gst: make us of the new gst_debug_set_threshold_from_string function
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679152
+
+2012-06-29 12:05:36 -0400  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	* win32/common/libgstreamer.def:
+	  info: add a function to set debug threshold from a GST_DEBUG-style string
+	  Use the same format as with the GST_DEBUG environment variable.
+	  API: gst_debug_set_threshold_from_string()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679152
+
+2012-10-25 15:27:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/libs/queuearray.c:
+	  queuearray: Fix unit test
+
+2012-10-22 10:13:20 +0200  Sebastian Dröge <sebastian.droege@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:
+	* libs/gst/base/gstqueuearray.c:
+	* libs/gst/base/gstqueuearray.h:
+	* plugins/elements/Makefile.am:
+	* plugins/elements/gstdataqueue.c:
+	* plugins/elements/gstdataqueue.h:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstmultiqueue.h:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	* plugins/elements/gstqueuearray.c:
+	* plugins/elements/gstqueuearray.h:
+	* win32/common/libgstbase.def:
+	  dataqueue/queuearray: Make public API again
+	  These are actually used outside of coreelements nowadays.
+	  Also hide lots of internals and add padding and documentation.
+
+2012-10-25 12:10:27 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* configure.ac:
 	* docs/plugins/inspect/plugin-coreelements.xml:
 	* win32/common/config.h:
 	* win32/common/gstversion.h:
-	  Back to development (bug-fixing)
+	  Back to feature development
 
 === release 1.0.2 ===
 
diff --git a/MAINTAINERS b/MAINTAINERS
index e27f34a..558ddff 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5,7 +5,8 @@
  Wim Taymans <wim.taymans@gmail.com>
  David Schleef <ds@schleef.org>
  Tim-Philipp Müller <tim centricular net>
+ Sebastian Dröge <slomo circular-chaos org>
 
 Maintainer-related issues should be addressed to:
 
-  gstreamer-devel@lists.sourceforge.net
+  gstreamer-devel@lists.freedesktop.org
diff --git a/Makefile.in b/Makefile.in
index c26621d..5bbf783 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +26,51 @@
 # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -64,16 +91,16 @@
 host_triplet = @host@
 target_triplet = @target@
 @BUILD_TOOLS_TRUE@am__append_1 = tools
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
-	$(srcdir)/gstreamer.spec.in $(srcdir)/stamp.h.in \
+DIST_COMMON = $(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_srcdir)/common/po.mak \
-	$(top_srcdir)/common/release.mak \
-	$(top_srcdir)/common/win32.mak $(top_srcdir)/configure \
-	ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS TODO compile \
+	$(top_srcdir)/common/cruft.mak INSTALL NEWS README AUTHORS \
+	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(srcdir)/stamp.h.in \
+	$(srcdir)/gstreamer.spec.in ABOUT-NLS COPYING TODO compile \
 	config.guess config.rpath config.sub depcomp install-sh \
-	ltmain.sh missing
+	missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -81,7 +108,6 @@
 	$(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 \
@@ -105,12 +131,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -119,21 +147,28 @@
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = stamp.h gstreamer.spec
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -170,11 +205,33 @@
 DATA = $(aclocal_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -184,6 +241,7 @@
       && rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -211,6 +269,7 @@
   reldir="$$dir2"
 GZIP_ENV = --best
 DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -315,15 +374,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -333,11 +388,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -345,6 +398,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -407,6 +461,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -674,22 +729,25 @@
 	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.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -704,57 +762,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -770,12 +783,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -787,15 +795,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -804,9 +808,31 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
@@ -877,39 +903,35 @@
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-lzip: distdir
 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__remove_distdir)
-
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 dist-xz: distdir
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-shar: distdir
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-zip: distdir
 	-rm -f $(distdir).zip
 	zip -rq $(distdir).zip $(distdir)
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
-dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -920,8 +942,6 @@
 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  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*) \
@@ -933,9 +953,9 @@
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod u+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -968,7 +988,7 @@
 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
 	  && cd "$$am__cwd" \
 	  || exit 1
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  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'
@@ -1108,14 +1128,13 @@
 
 uninstall-am: uninstall-aclocalDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	ctags-recursive install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) all install-am install-strip
 
-.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-lzip dist-lzma \
-	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip 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 \
@@ -1126,7 +1145,7 @@
 	install-strip installcheck installcheck-am installdirs \
 	installdirs-am maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-recursive uninstall uninstall-aclocalDATA \
+	ps ps-am tags tags-am uninstall uninstall-aclocalDATA \
 	uninstall-am
 
 
@@ -1170,11 +1189,17 @@
 	if test $$fail != 0; then \
 	  echo '-----------------------------------------------------------'; \
 	  echo 'Run this to update the .def files:'; \
-	  echo 'make check-exports 2>&1 | patch -p1'; \
+	  echo 'make update-exports'; \
 	  echo '-----------------------------------------------------------'; \
 	fi; \
 	exit $$fail
 
+update-exports:
+	make check-exports 2>&1 | patch -p1
+	git add win32/common/libgst*.def
+	git diff --cached -- win32/common/
+	echo '^^^--- updated and staged changes above'
+
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
 check-nonportable-print-format:
 	@fail=0 ; \
@@ -1311,7 +1336,7 @@
 	  done;                                                                                                  \
 	  exit 1;                                                                                                \
 	fi
-.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload
+.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
 lcov-reset:
@@ -1322,10 +1347,14 @@
 lcov:
 	$(MAKE) lcov-reset
 
-# reset run coverage tests
-@GST_GCOV_ENABLED_TRUE@lcov-run:
+# reset lcov stats
+@GST_GCOV_ENABLED_TRUE@lcov-clean:
 @GST_GCOV_ENABLED_TRUE@	@-rm -rf lcov
 @GST_GCOV_ENABLED_TRUE@	lcov --directory . --zerocounters
+
+# reset run coverage tests
+@GST_GCOV_ENABLED_TRUE@lcov-run:
+@GST_GCOV_ENABLED_TRUE@	-$(MAKE) lcov-clean
 @GST_GCOV_ENABLED_TRUE@	-if test -d tests/check; then $(MAKE) -C tests/check inspect; fi
 @GST_GCOV_ENABLED_TRUE@	-$(MAKE) check
 
diff --git a/NEWS b/NEWS
index 7013149..7cbd2a8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,145 +1,2 @@
-This is GStreamer 1.0.8
-
-Changes since 1.0.7:
-
-      * basesink: improve position reporting without clock
-      * fix caps leak in typefind/decodebin/playbin
-      * gobject-introspection fixes for bindings
-
-Bugs fixed since 1.0.7:
-
-      * 693365 : gst_structure_is_subset false positive
-      * 702617 : buffer: Wrong size/index handling when merging memory
-      * 702778 : REGRESSION : Backward seeking doesn't work with mp3 files.
-      * 703562 : Missing few allow-none annotation
-
-Changes since 1.0.6:
-
-      * Add better support for static plugins
-
-Bugs fixed since 1.0.6:
-
-      * 667305 : build: Add --enable-static-plugins configure argument
-      * 696357 : Basesrc may send not-neg error when flushed
-      * 696435 : gst_static_caps_get(GST_STATIC_CAPS_NONE) doesn't work properly
-      * 697791 : gst-inspect: shows action signal return pointers as pointers
-
-Changes since 1.0.5:
-
-      * bin: reset GValue from iterator after usage, fixing leak
-      * pipeline: fix seeking on pipeline with NULL clock
-      * message: accept NULL error argument in gst_message_parse_{error,warning,info}
-      * basesrc: handle renegotiation correctly
-      * basesink: handle sync of EOS after item without duration
-      * basetransform: avoid warnings from NULL outcaps passed to transform_size in shutdown race
-      * adapter, basesrc, typefind: handle gst_buffer_map failure
-      * queuearray: fix gst_queue_array_drop_element() 
-      * queuearray: fix gst_queue_array_find()
-      * queue: remove query from queue if queue is flushing
-      * g-i: make sure enumeration types and flags are introspected and available to bindings
-      * g-i: add allow-none annotation for gst_pipeline_new()'s name property
-
-Bugs fixed since 1.0.5:
-
-      * 684804 : basesink: fails to post EOS message with RTSP stream
-      * 691185 : g-i: GStreamer enums and flags not usable - " expected enumeration type GstFormat, but got Format instead " warning when setting GstFormat property on GStreamer appsrc element
-      * 691985 : gst_pad_check_reconfigure: only remove flag if set.
-      * 691986 : basesrc: set NEED_RECONFIGURE flag if negotiate fails
-      * 692691 : queue: dangling pointer when doing allocation query on a flushing queue
-      * 692868 : basesink: expands GAP event without duration to last to segment end
-      * 693065 : pipeline: criticals when seeking on pipeline with NULL clock
-      * 693587 : Adding offset to GstSegment deserialize/serialize to fix jump on uninitialized value
-      * 693704 : gst_message_parse_{warning,error} annotations wrongly claim allow-none for GError parameter
-      * 693996 : basetransform: audioresample shutdown unit test fails with 'gst_audio_info_from_caps: caps != NULL'  in transform_size
-
-Changes since 1.0.4:
-
-      * add GST_BIN_FLAG_NO_RESYNC flag that disables a resync when
-        an element is added, removed or linked in the bin; this is
-        interesting for complex bins that dynamically add elements
-        to themselves and want to manage the state of those elements
-        without interference from state resync threads (which may
-        cause deadlocks)
-      * add OTHER clock type
-
-Bugs fixed since 1.0.4:
-
-      * 690915 : Replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS in configure.ac
-
-API additions since 1.0.4:
-
-      * GST_BIN_FLAG_NO_RESYNC
-      * GST_CLOCK_TYPE_OTHER
-
-Changes since 1.0.3:
-
-      * basesrc: fix potential leaks when re-activating in a different mode
-      * bindings: make all pad probe types work with bindings
-      * bindings: fix gst_event_parse_stream_start() annotation, fixing crash
-      * documentation improvements
-
-Bugs fixed since 1.0.3:
-
-      * 687845 : filesrc: leaks file descriptor if activation in pull mode fails
-      * 688804 : Getting error trying to add a pad_probe
-      * 688934 : Gst.Event.parse_stream_start seems to not function correctly
-
-Changes since 1.0.2:
-
-      * bufferpool: fix deadlock
-      * baseparse: forward stream-start event in push mode, fixing issues with streamsynchronizer
-      * basesink: reset START_TIME when needed, fixing position reporting after seeking beyond end
-
-Bugs fixed since 1.0.2:
-
-      * 666053 : baseparse: prevent excessively high memory usage with large streams
-      * 687896 : bufferpool: deadlock in GstBufferPool
-      * 688477 : inputselector: fix clock leak in wait_running_time
-      * 688511 : Windows compilers without pthreads still have testrtpool.c being built in tests
-      * 688655 : baseparse: stream-start events not sent in push mode
-      * 685870 : Regression with position when seeking beyond the media duration
-
-Changes since 1.0.1:
-
-      * Parallel installability with 0.10.x series
-      * collectpads: ensure all timestamps are in same time domain
-      * gobject-introspection: fix GstSample annotations
-      * add GstElement::post_message() vfunc
-      * info: allow gst_debug_add_log_function() to be called before gst_init()
-      * event: allow GST_CLOCK_TIME_NONE as duration for GAP events
-      * documentation: new chapters and updates for the application development manual and the plugin writer's guide
-
-Bugs fixed since 1.0.1:
-
-      * 686456 : g_type_init is no longer required
-      * 686658 : allocator: fix memory leak in _fallback_mem_copy
-      * 686659 : preset: remove variable not read
-      * 686723 : basesrc: generic/states test in -base now hangs with appsrc
-      * 686787 : testrtpool must be linked to pthreads
-
-Changes since 1.0.0:
-
-      * Capsfilter prefers filter caps over passthrough now
-      * Application Development Manual, Plugin Writer's Guide and other documentation updated and extended for 1.0
-      * Bug fixes 
-
-Bugs fixed since 1.0.0:
-
-      * 680862 : identity with single-segment=true gives buffer.pts of CLOCK_TIME_NONE
-      * 684538 : baseparse: no timestamps after seeking in mp3 or aac
-      * 684755 : typo - whithin > within
-      * 684765 : Plugins without a klass in the metadata crashes autoaudiosink
-      * 684809 : proxypad don't hold a ref to their internal pad while streaming through it
-      * 684970 : Don't register printf extension for %p when glib is not using system printf
-      * 684981 : Pipeline hangs on PREROLLING negotiating caps
-      * 685072 : memory: map(READ)/unmap clears the READONLY status
-
-API additions since 1.0.0:
-
-      * gst_base_transform_set_prefer_passthrough()
-
-New features in 1.0.0:
-
-      * Parallel installability with 0.10.x series
-      * See release notes for more details
+This is GStreamer 1.1.2
 
diff --git a/README b/README
index 554653d..5df2d2b 100644
--- a/README
+++ b/README
@@ -1,3 +1,5 @@
+GStreamer 1.1.x development series
+
 WHAT IT IS
 ----------
 
@@ -21,8 +23,8 @@
 
 You can join us on IRC - #gstreamer on irc.freenode.org
 
-GStreamer 0.10 series
----------------------
+GStreamer 1.0 series
+--------------------
 
 Starring
 
@@ -135,13 +137,14 @@
 ---------
 
 - Linux is of course fully supported
-- FreeBSD is reported to work; other BSD's should work too
+- FreeBSD is reported to work; other BSDs should work too
 - Solaris is reported to work; a specific sunaudiosink plugin has been written
-- MacOSX is reported to work; specific audio and video sinks have been written
-- Windows support is experimental but improving.  Output sinks have been
-  written but are not yet included in the code. We support
+- MacOSX works, binary 1.x packages can be built using the cerbero build tool
+- Windows works; binary 1.x packages can be built using the cerbero build tool
   - MSys/MinGW builds
-  - Microsoft Visual Studio 6 builds (see win32/README.txt)
+  - Microsoft Visual Studio builds are not yet available or supported
+- Android works, binary 1.x packages can be built using the cerbero build tool
+- iOS works
 
 INSTALLING FROM PACKAGES
 ------------------------
@@ -193,7 +196,7 @@
 COMPILING FROM GIT
 ------------------
 
-When building from git sources, you will need to run autogen.sh to generate 
+When building from git sources, you will need to run autogen.sh to generate
 the build system files.
 
 You will need a set of additional tools typical for building from git,
@@ -208,10 +211,7 @@
 
 Check autogen.sh options by running autogen.sh --help
 
-autogen.sh can pass on arguments to configure - you just need to separate them
-from autogen.sh with -- between the two.
-prefix has been added to autogen.sh but will be passed on to configure because
-some build scripts like that.
+autogen.sh can pass on arguments to configure
 
 When you have done this once, you can use autoregen.sh to re-autogen with
 the last passed options as a handy shortcut.  Use it.
@@ -219,9 +219,17 @@
 After the autogen.sh stage, you can follow the directions listed in
 "COMPILING FROM SOURCE"
 
-You can also run your whole git stack uninstalled.  The script in
-the gstreamer module /scripts/gst-uninstalled) is helpful in setting
-up your environment for this.
+You can also run your whole git stack uninstalled in your home directory,
+so that you can quickly test changes without affecting your system setup or
+interfering with GStreamer installed from packages.  Many GStreamer developers
+use an uninstalled setup for their work.
+
+There is a 'create-uninstalled-setup.sh' script in
+
+  http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
+
+to easily create an uninstalled setup from scratch.
+
 
 PLUG-IN DEPENDENCIES AND LICENSES
 ---------------------------------
diff --git a/RELEASE b/RELEASE
index 1dc812d..68f43dd 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer 1.0.8
+Release notes for GStreamer 1.1.2
 
 
 The GStreamer team is proud to announce a new bug-fix release
@@ -42,16 +42,17 @@
 
 Features of this release
     
-      * basesink: improve position reporting without clock
-      * fix caps leak in typefind/decodebin/playbin
-      * gobject-introspection fixes for bindings
 
 Bugs fixed in this release
      
-      * 693365 : gst_structure_is_subset false positive
-      * 702617 : buffer: Wrong size/index handling when merging memory
-      * 702778 : REGRESSION : Backward seeking doesn't work with mp3 files.
-      * 703562 : Missing few allow-none annotation
+      * 652037 : basesrc: less persistent caching of size
+      * 701985 : gst-launch: Unreffing GstContext that is still used
+      * 702089 : gst_init: Don't intercept --help
+      * 702520 : queue: deadlock when reconfigure event
+      * 702632 : acceptcaps query can be very very slow
+      * 703267 : funnel: Needs to be usable in playbin
+      * 703377 : gst_check_setup_events() and multiple src or sink pads
+      * 703682 : POTFILES.in is out of date
 
 ==== Download ====
 
@@ -88,10 +89,18 @@
         
 Contributors to this release
     
+      * Brendan Long
+      * Edward Hervey
+      * Hans de Goede
+      * Jonas Holmberg
+      * Kim Lam
       * Nicolas Dufresne
       * Olivier Crête
       * Paul HENRYS
+      * Piotr Drąg
       * Sebastian Dröge
+      * Sjoerd Simons
+      * Stefan Sauer
       * Thibault Saunier
       * Tim-Philipp Müller
       * Wim Taymans
diff --git a/aclocal.m4 b/aclocal.m4
index d0f821c..d5e89c0 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 1996-2013 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.
@@ -12,33 +11,31 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 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'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002-2013 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
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.13'
 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.6], [],
+m4_if([$1], [1.13.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -54,21 +51,19 @@
 # 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.6])dnl
+[AM_AUTOMAKE_VERSION([1.13.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # Figure out how to run the assembler.                      -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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 5
-
 # AM_PROG_AS
 # ----------
 AC_DEFUN([AM_PROG_AS],
@@ -83,17 +78,15 @@
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -112,7 +105,7 @@
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -138,22 +131,19 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 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 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -172,16 +162,14 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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 12
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# 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,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -191,7 +179,7 @@
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -204,12 +192,13 @@
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -217,8 +206,8 @@
   # 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'.
+  # 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
@@ -258,16 +247,16 @@
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -276,8 +265,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -285,7 +274,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -333,7 +322,7 @@
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -343,9 +332,13 @@
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -360,20 +353,18 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -386,7 +377,7 @@
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -398,21 +389,19 @@
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -430,7 +419,7 @@
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -440,15 +429,12 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 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 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -464,7 +450,7 @@
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -493,31 +479,40 @@
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -528,28 +523,32 @@
 			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
@@ -577,15 +576,12 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 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.
@@ -599,16 +595,14 @@
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 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
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -625,20 +619,17 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 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 5
-
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless `enable' is passed literally.
-# For symmetry, `disable' may be passed as well.  Anyway, the user
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
 # can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
 [m4_case(m4_default([$1], [disable]),
@@ -649,10 +640,11 @@
 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
-			  (and sometimes confusing) to the casual installer],
-      [USE_MAINTAINER_MODE=$enableval],
-      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
   AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
@@ -660,18 +652,14 @@
 ]
 )
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -689,7 +677,7 @@
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -714,15 +702,12 @@
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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 6
-
 # AM_PROG_CC_C_O
 # --------------
 # Like AC_PROG_CC_C_O, but changed for automake.
@@ -751,15 +736,12 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 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 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -767,11 +749,10 @@
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -784,29 +765,32 @@
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003-2013 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'.
+# Check for 'mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
 [AC_PREREQ([2.60])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl FIXME we are no longer going to remove this! adjust warning
+dnl FIXME message accordingly.
+AC_DIAGNOSE([obsolete],
+[$0: this macro is deprecated, and will soon be removed.
+You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.])
 dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
 dnl while keeping a definition of mkdir_p for backward compatibility.
 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
@@ -823,15 +807,12 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 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 5
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -841,7 +822,7 @@
 # --------------------
 # 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)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -855,13 +836,246 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
+  dnl supported. (2.0 was released on October 16, 2000).
+  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
+ python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
+
+  AC_ARG_VAR([PYTHON], [the Python interpreter])
+
+  m4_if([$1],[],[
+    dnl No version check is needed.
+    # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+    fi
+    am_display_PYTHON=python
+  ], [
+    dnl A version check is needed.
+    if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      AC_MSG_CHECKING([whether $PYTHON version is >= $1])
+      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+			      [AC_MSG_RESULT([yes])],
+			      [AC_MSG_RESULT([no])
+			       AC_MSG_ERROR([Python interpreter is too old])])
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+	[am_cv_pathless_PYTHON],[
+	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+	  test "$am_cv_pathless_PYTHON" = none && break
+	  AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+	done])
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+	PYTHON=:
+      else
+        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+  ])
+
+  if test "$PYTHON" = :; then
+  dnl Run any user-specified action, or abort.
+    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+  else
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behavior
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+    [am_cv_python_pythondir],
+    [if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+
+  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+    [am_cv_python_pyexecdir],
+    [if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+  dnl Run any user-specified action.
+  $2
+  fi
+
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Copyright (C) 2001-2013 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.
 
 # AM_RUN_LOG(COMMAND)
 # -------------------
@@ -876,22 +1090,16 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 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 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -902,32 +1110,40 @@
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
 
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -937,31 +1153,50 @@
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 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
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   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 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}
@@ -979,7 +1214,7 @@
   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.
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
   AM_V='$(V)'
   AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
 else
@@ -996,44 +1231,40 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 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 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1047,18 +1278,16 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 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
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -1068,76 +1297,114 @@
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_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='$${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])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
 
-  # tar/untar a dummy directory, and stop if the command works
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
@@ -1147,7 +1414,6 @@
 m4_include([common/m4/as-compiler-flag.m4])
 m4_include([common/m4/as-docbook.m4])
 m4_include([common/m4/as-libtool.m4])
-m4_include([common/m4/as-python.m4])
 m4_include([common/m4/as-scrub-include.m4])
 m4_include([common/m4/as-version.m4])
 m4_include([common/m4/ax_create_stdint_h.m4])
@@ -1174,10 +1440,12 @@
 m4_include([m4/gettext.m4])
 m4_include([m4/iconv.m4])
 m4_include([m4/intlmacosx.m4])
+m4_include([m4/inttypes_h.m4])
 m4_include([m4/lib-ld.m4])
 m4_include([m4/lib-link.m4])
 m4_include([m4/lib-prefix.m4])
 m4_include([m4/libtool.m4])
+m4_include([m4/longlong.m4])
 m4_include([m4/ltoptions.m4])
 m4_include([m4/ltsugar.m4])
 m4_include([m4/ltversion.m4])
@@ -1185,3 +1453,4 @@
 m4_include([m4/nls.m4])
 m4_include([m4/po.m4])
 m4_include([m4/progtest.m4])
+m4_include([m4/stdint_h.m4])
diff --git a/autogen.sh b/autogen.sh
index 0a5e6d8..a6cd8b4 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,5 +1,11 @@
 #!/bin/sh
+#
+# gstreamer autogen.sh
+#
 # Run this to generate all the initial makefiles, etc.
+#
+# This file has been generated from common/autogen.sh.in via common/update-autogen
+
 
 test -n "$srcdir" || srcdir=`dirname "$0"`
 test -n "$srcdir" || srcdir=.
@@ -9,7 +15,7 @@
 
 DIE=0
 package=gstreamer
-srcfile=gst/gst.c
+srcfile=gstreamer.doap
 
 # Make sure we have common
 if test ! -f common/gst-autogen.sh;
@@ -37,21 +43,27 @@
 
 # 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
+if test -d po ; then
+  touch -t 200001010000 po/gstreamer-1.0.pot
+fi
 
-CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-failing-tests --enable-poisoning --enable-gtk-doc --enable-docbook'
+CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc'
+
+if test "x$package" = "xgstreamer"; then
+  CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning"
+fi
 
 autogen_options $@
 
 printf "+ check for build tools"
 if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else  echo; fi
-version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262" \
-              "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 62 || DIE=1
+version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 " \
+              "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 68 || DIE=1
 version_check "automake" "$AUTOMAKE automake automake-1.11" \
               "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1
 version_check "autopoint" "autopoint" \
               "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 17 || DIE=1
-version_check "libtoolize" "libtoolize glibtoolize" \
+version_check "libtoolize" "$LIBTOOLIZE libtoolize glibtoolize" \
               "ftp://ftp.gnu.org/pub/gnu/libtool/" 2 2 6 || DIE=1
 version_check "pkg-config" "" \
               "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1
@@ -75,8 +87,6 @@
 toplevel_check $srcfile
 
 # autopoint
-#    older autopoint (< 0.12) has a tendency to complain about mkinstalldirs
-if test -x mkinstalldirs; then rm mkinstalldirs; fi
 #    first remove patch if necessary, then run autopoint, then reapply
 if test -f po/Makefile.in.in;
 then
@@ -100,16 +110,16 @@
 tool_run "$automake" "--add-missing --copy"
 
 test -n "$NOCONFIGURE" && {
-  echo "skipping configure stage for package $package, as requested."
-  echo "autogen.sh done."
+  echo "+ skipping configure stage for package $package, as requested."
+  echo "+ autogen.sh done."
   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"
+test ! -z "$CONFIGURE_DEF_OPT" && echo "  default flags:  $CONFIGURE_DEF_OPT"
+test ! -z "$CONFIGURE_EXT_OPT" && echo "  external flags: $CONFIGURE_EXT_OPT"
 echo
 
 echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT
@@ -119,4 +129,3 @@
 }
 
 echo "Now type 'make' to compile $package."
-
diff --git a/common/Makefile.in b/common/Makefile.in
index 6b9bac7..2043b94 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,14 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog \
+	README
 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 \
@@ -83,33 +110,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +153,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -247,15 +303,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -265,11 +317,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -277,6 +327,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -339,6 +390,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -492,22 +544,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -522,57 +577,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -588,12 +598,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -605,15 +610,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -622,6 +623,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -782,22 +798,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/common/README b/common/README
new file mode 100644
index 0000000..83a1b88
--- /dev/null
+++ b/common/README
@@ -0,0 +1,255 @@
+GStreamer @SERIES_VERSION@
+
+WHAT IT IS
+----------
+
+This is GStreamer, a framework for streaming media.
+
+WHERE TO START
+--------------
+
+We have a website at
+http://gstreamer.freedesktop.org/
+
+You should start by going through our FAQ at
+http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/
+
+There is more documentation; go to
+http://gstreamer.freedesktop.org/documentation
+
+You can subscribe to our mailing lists; see the website for details.
+
+We track bugs in GNOME's bugzilla; see the website for details.
+
+You can join us on IRC - #gstreamer on irc.freenode.org
+
+GStreamer 1.0 series
+--------------------
+
+Starring
+
+  GSTREAMER
+
+The core around which all other modules revolve.  Base functionality and
+libraries, some essential elements, documentation, and testing.
+
+  BASE
+
+A well-groomed and well-maintained collection of GStreamer plug-ins and
+elements, spanning the range of possible types of elements one would want
+to write for GStreamer.  
+
+And introducing, for the first time ever, on the development screen ...
+
+  THE GOOD
+
+ --- "Such ingratitude.  After all the times I've saved your life."
+
+A collection of plug-ins you'd want to have right next to you on the
+battlefield.  Shooting sharp and making no mistakes, these plug-ins have it
+all: good looks, good code, and good licensing.  Documented and dressed up
+in tests.  If you're looking for a role model to base your own plug-in on,
+here it is.
+
+If you find a plot hole or a badly lip-synced line of code in them,
+let us know - it is a matter of honour for us to ensure Blondie doesn't look
+like he's been walking 100 miles through the desert without water.
+
+  THE UGLY
+
+  --- "When you have to shoot, shoot.  Don't talk."
+
+There are times when the world needs a color between black and white.
+Quality code to match the good's, but two-timing, backstabbing and ready to
+sell your freedom down the river.  These plug-ins might have a patent noose
+around their neck, or a lock-up license, or any other problem that makes you
+think twice about shipping them.
+
+We don't call them ugly because we like them less.  Does a mother love her
+son less because he's not as pretty as the other ones ? No  - she commends
+him on his great personality.  These plug-ins are the life of the party.
+And we'll still step in and set them straight if you report any unacceptable
+behaviour - because there are two kinds of people in the world, my friend:
+those with a rope around their neck and the people who do the cutting.
+
+  THE BAD
+
+  --- "That an accusation?"
+
+No perfectly groomed moustache or any amount of fine clothing is going to
+cover up the truth - these plug-ins are Bad with a capital B. 
+They look fine on the outside, and might even appear to get the job done, but
+at the end of the day they're a black sheep. Without a golden-haired angel
+to watch over them, they'll probably land in an unmarked grave at the final
+showdown.
+
+Don't bug us about their quality - exercise your Free Software rights,
+patch up the offender and send us the patch on the fastest steed you can
+steal from the Confederates. Because you see, in this world, there's two
+kinds of people, my friend: those with loaded guns and those who dig.
+You dig.
+
+The Lowdown
+-----------
+
+  --- "I've never seen so many plug-ins wasted so badly."
+
+GStreamer Plug-ins has grown so big that it's hard to separate the wheat from
+the chaff.  Also, distributors have brought up issues about the legal status
+of some of the plug-ins we ship.  To remedy this, we've divided the previous
+set of available plug-ins into four modules:
+
+- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range
+  of possible types of elements; these are continuously kept up-to-date
+  with any core changes during the development series.
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+  - These elements come with examples, documentation, and regression tests.
+
+- gst-plugins-good: a set of plug-ins that we consider to have good quality
+  code, correct functionality, our preferred license (LGPL for the plug-in
+  code, LGPL or LGPL-compatible for the supporting library).
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+ 
+- gst-plugins-ugly: a set of plug-ins that have good quality and correct
+  functionality, but distributing them might pose problems.  The license
+  on either the plug-ins or the supporting libraries might not be how we'd
+  like. The code might be widely known to present patent problems.
+
+  - Distributors should check if they want/can ship these plug-ins.
+  - People writing elements should base their code on these elements.
+
+- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the
+  rest.  They might be close to being good quality, but they're missing
+  something - be it a good code review, some documentation, a set of tests,
+  a real live maintainer, or some actual wide use.
+  If the blanks are filled in they might be upgraded to become part of
+  either gst-plugins-good or gst-plugins-ugly, depending on the other factors.
+
+  - If the plug-ins break, you can't complain - instead, you can fix the
+    problem and send us a patch, or bribe someone into fixing them for you.
+  - New contributors can start here for things to work on.
+
+PLATFORMS
+---------
+
+- Linux is of course fully supported
+- FreeBSD is reported to work; other BSDs should work too
+- Solaris is reported to work; a specific sunaudiosink plugin has been written
+- MacOSX works, binary 1.x packages can be built using the cerbero build tool
+- Windows works; binary 1.x packages can be built using the cerbero build tool
+  - MSys/MinGW builds
+  - Microsoft Visual Studio builds are not yet available or supported
+- Android works, binary 1.x packages can be built using the cerbero build tool
+- iOS works
+
+INSTALLING FROM PACKAGES
+------------------------
+
+You should always prefer installing from packages first.  GStreamer is
+well-maintained for a number of distributions, including Fedora, Debian,
+Ubuntu, Mandrake, Gentoo, ...
+
+Only in cases where you:
+- want to hack on GStreamer
+- want to verify that a bug has been fixed
+- do not have a sane distribution
+should you choose to build from source tarballs or git.
+
+Find more information about the various packages at
+http://gstreamer.freedesktop.org/download/
+
+COMPILING FROM SOURCE TARBALLS
+------------------------------
+
+- again, make sure that you really need to install from source !
+  If GStreamer is one of your first projects ever that you build from source,
+  consider taking on an easier project.
+
+- check output of ./configure --help to see if any options apply to you
+- run
+  ./configure
+  make
+
+  to build GStreamer.
+- if you want to install it (not required, but what you usually want to do), run
+  make install
+
+- try out a simple test:
+  gst-launch -v fakesrc num_buffers=5 ! fakesink
+  (If you didn't install GStreamer, prefix gst-launch with tools/)
+
+  If it outputs a bunch of messages from fakesrc and fakesink, everything is
+  ok.
+
+  If it did not work, keep in mind that you might need to adjust the
+  PATH and/or LD_LIBRARY_PATH environment variables to make the system
+  find GStreamer in the prefix where you installed (by default that is /usr/local).
+
+- After this, you're ready to install gst-plugins, which will provide the
+  functionality you're probably looking for by now, so go on and read
+  that README.
+
+COMPILING FROM GIT
+------------------
+
+When building from git sources, you will need to run autogen.sh to generate
+the build system files.
+
+You will need a set of additional tools typical for building from git,
+including:
+- autoconf
+- automake
+- libtool
+
+autogen.sh will check for recent enough versions and complain if you don't have
+them.  You can also specify specific versions of automake and autoconf with
+--with-automake and --with-autoconf
+
+Check autogen.sh options by running autogen.sh --help
+
+autogen.sh can pass on arguments to configure
+
+When you have done this once, you can use autoregen.sh to re-autogen with
+the last passed options as a handy shortcut.  Use it.
+
+After the autogen.sh stage, you can follow the directions listed in
+"COMPILING FROM SOURCE"
+
+You can also run your whole git stack uninstalled in your home directory,
+so that you can quickly test changes without affecting your system setup or
+interfering with GStreamer installed from packages.  Many GStreamer developers
+use an uninstalled setup for their work.
+
+There is a 'create-uninstalled-setup.sh' script in
+
+  http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
+
+to easily create an uninstalled setup from scratch.
+
+
+PLUG-IN DEPENDENCIES AND LICENSES
+---------------------------------
+
+GStreamer is developed under the terms of the LGPL (see LICENSE file for
+details). Some of our plug-ins however rely on libraries which are available
+under other licenses. This means that if you are distributing an application
+which has a non-GPL compatible license (for instance a closed-source
+application) with GStreamer, you have to make sure not to distribute GPL-linked
+plug-ins.
+
+When using GPL-linked plug-ins, GStreamer is for all practical reasons
+under the GPL itself.
+
+HISTORY
+-------
+
+The fundamental design comes from the video pipeline at Oregon Graduate
+Institute, as well as some ideas from DirectMedia.  It's based on plug-ins that
+will provide the various codec and other functionality.  The interface
+hopefully is generic enough for various companies (ahem, Apple) to release
+binary codecs for Linux, until such time as they get a clue and release the
+source.
diff --git a/common/c-to-xml.py b/common/c-to-xml.py
index 397c112..7a7a35b 100644
--- a/common/c-to-xml.py
+++ b/common/c-to-xml.py
@@ -5,6 +5,8 @@
 Convert a C program to valid XML to be included in docbook
 """
 
+from __future__ import print_function, unicode_literals
+
 import sys
 import os
 from xml.sax import saxutils
@@ -22,13 +24,13 @@
     content = open(source, "r").read()
 
     # print header
-    print '<?xml version="1.0"?>'
-    print '<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'
-    print
-    print '<programlisting>'
+    print ('<?xml version="1.0"?>')
+    print ('<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">')
+    print ()
+    print ('<programlisting>')
 
     # print content
-    print saxutils.escape(content).encode('UTF-8')
-    print '</programlisting>'
+    print (saxutils.escape(content))
+    print ('</programlisting>')
 
 main()
diff --git a/common/check.mak b/common/check.mak
index 0aec843..285876c 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -11,7 +11,7 @@
 	@true
 endif
 
-LOOPS = 10
+LOOPS ?= 10
 
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
@@ -74,6 +74,17 @@
 	--gen-suppressions=all					\
 	./$* 2>&1 | tee suppressions.log
 	
+# valgrind torture any given test
+%.valgrind-torture: %
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) $*.valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind any given test until failure by running make test.valgrind-forever
 %.valgrind-forever: %
 	@while $(MAKE) $*.valgrind; do				\
@@ -86,9 +97,34 @@
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
 
+%.lcov-reset:
+	$(MAKE) $*.lcov-run
+	$(MAKE) $*.lcov-report
+
+%.lcov: %
+	$(MAKE) $*.lcov-reset
+
+if GST_GCOV_ENABLED
+%.lcov-clean:
+	$(MAKE) -C $(top_builddir) lcov-clean
+
+%.lcov-run:
+	$(MAKE) $*.lcov-clean
+	$(MAKE) $*.check
+
+%.lcov-report:
+	$(MAKE) -C $(top_builddir) lcov-report
+else
+%.lcov-run:
+	echo "Need to reconfigure with --enable-gcov"
+
+%.lcov-report:
+	echo "Need to reconfigure with --enable-gcov"
+endif
+
 # torture tests
 torture: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Torturing tests ..."
 	@for i in `seq 1 $(LOOPS)`; do				\
 		$(MAKE) check ||				\
@@ -101,7 +137,7 @@
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -127,6 +163,29 @@
 		false;							\
 	fi
 
+# valgrind all tests until failure
+valgrind-forever: $(TESTS)
+	-rm test-registry.*
+	@echo "Forever valgrinding tests ..."
+	@while true; do						\
+		$(MAKE) valgrind ||				\
+		(echo "Failure"; exit 1) ||			\
+		exit 1;						\
+	done
+
+# valgrind torture all tests
+valgrind-torture: $(TESTS)
+	-rm test-registry.*
+	@echo "Torturing and valgrinding tests ..."
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind all tests and generate suppressions
 valgrind.gen-suppressions: $(TESTS)
 	@echo "Valgrinding tests ..."
@@ -166,10 +225,13 @@
 	@echo "make (dir)/(test).gdb              -- start up gdb for the given test"
 	@echo
 	@echo "make valgrind                      -- valgrind all tests"
+	@echo "make valgrind-forever              -- valgrind all tests forever"
+	@echo "make valgrind-torture              -- valgrind all tests $(LOOPS) times"
 	@echo "make valgrind.gen-suppressions     -- generate suppressions for all tests"
 	@echo "                                      and save to suppressions.log"
 	@echo "make (dir)/(test).valgrind         -- valgrind the given test"
 	@echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever"
+	@echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times"
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
diff --git a/common/coverage/coverage-report-entry.pl b/common/coverage/coverage-report-entry.pl
index 51c506c..d0036b3 100644
--- a/common/coverage/coverage-report-entry.pl
+++ b/common/coverage/coverage-report-entry.pl
@@ -14,7 +14,7 @@
 #
 # 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 print <<EOF;
diff --git a/common/coverage/coverage-report.pl b/common/coverage/coverage-report.pl
index ed30f8d..18bd6f1 100644
--- a/common/coverage/coverage-report.pl
+++ b/common/coverage/coverage-report.pl
@@ -14,7 +14,7 @@
 #
 # 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 use warnings;
 use strict;
diff --git a/common/coverage/coverage-report.xsl b/common/coverage/coverage-report.xsl
index b19ebb6..3fe124b 100644
--- a/common/coverage/coverage-report.xsl
+++ b/common/coverage/coverage-report.xsl
@@ -15,7 +15,7 @@
 #

 # 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

 -->

 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

                 version="1.0">

diff --git a/common/coverage/lcov.mak b/common/coverage/lcov.mak
index fc1f6b2..b45728a 100644
--- a/common/coverage/lcov.mak
+++ b/common/coverage/lcov.mak
@@ -1,5 +1,5 @@
 ## .PHONY so it always rebuilds it
-.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload
+.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
 lcov-reset:
@@ -11,10 +11,14 @@
 	$(MAKE) lcov-reset
 
 if GST_GCOV_ENABLED
-# reset run coverage tests
-lcov-run:
+# reset lcov stats
+lcov-clean:
 	@-rm -rf lcov
 	lcov --directory . --zerocounters
+
+# reset run coverage tests
+lcov-run:
+	-$(MAKE) lcov-clean
 	-if test -d tests/check; then $(MAKE) -C tests/check inspect; fi
 	-$(MAKE) check
 
diff --git a/common/gst.supp b/common/gst.supp
index d7f8961..8a3617f 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -91,6 +91,14 @@
    fun:pthread_create@@*
 }
 
+{
+   <tls>
+   Memcheck:Leak
+   fun:calloc
+   fun:allocate_dtv
+   fun:_dl_allocate_tls
+}
+
 # I get an extra stack entry on x86/dapper
 {
    <tls>
@@ -3961,3 +3969,18 @@
    fun:gst_system_clock_init
 }
 
+{
+   <glib types are singletons>
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:gobject_init_ctor
+}
+
+{
+   <quark table is leaked on purpose if it grows too big>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:g_quark_from*_string
+}
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 0d69a86..09039a5 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -16,7 +16,7 @@
 #
 # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 #
@@ -307,10 +307,10 @@
             /* output element data */
             fputs ("    <element>\\n", 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);
-            fputs (xmlprint(6, "author", gst_element_factory_get_author (factory)),inspect);
+            fputs (xmlprint(6, "longname", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)),inspect);
+            fputs (xmlprint(6, "class", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS)),inspect);
+            fputs (xmlprint(6, "description", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_DESCRIPTION)),inspect);
+            fputs (xmlprint(6, "author", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_AUTHOR)),inspect);
             fputs ("      <pads>\\n", inspect);
 
             /* output pad-template data */
@@ -354,11 +354,11 @@
       factory = GST_ELEMENT_FACTORY (l->data);
       type = gst_element_factory_get_element_type (factory);
       if (type != 0) {
-        $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory));
+        $debug_log ("adding type for factory %s", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
         object_types[i++] = type;
       } else {
         g_message ("type info for factory %s not found",
-            gst_element_factory_get_longname (factory));
+            gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
       }
       l = g_list_next (l);
     }
diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak
index 2468cb0..f19e7d7 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -94,9 +94,9 @@
 INSPECT_REGISTRY=$(top_builddir)/docs/plugins/inspect-registry.xml
 INSPECT_ENVIRONMENT=\
 	LC_ALL=C \
-	GST_PLUGIN_SYSTEM_PATH= \
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
-	GST_REGISTRY=$(INSPECT_REGISTRY) \
+	GST_PLUGIN_SYSTEM_PATH_1_0= \
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
+	GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \
 	PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 	$(INSPECT_EXTRA_ENVIRONMENT)
 
@@ -222,10 +222,7 @@
 	    mkhtml_options="$$mkhtml_options --verbose"; \
 	  fi; \
 	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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-	@rm -f html/index.sgml.bak
+	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE)
 	@rm -f html/$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
 	@rm -f html/version.entities
@@ -289,9 +286,9 @@
 	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	    done; \
 	  fi; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(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 a1e07dc..9d76889 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -81,9 +81,9 @@
 		--ignore-headers="$(IGNORE_HFILES)"
 	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then	\
 	    echo "  DOC   Introspecting gobjects"; \
-	    GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`		\
-	    GST_PLUGIN_PATH=						\
-	    GST_REGISTRY=doc-registry.xml				\
+	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
+	    GST_PLUGIN_PATH_1_0=						\
+	    GST_REGISTRY_1_0=doc-registry.xml				\
 	    $(GTKDOC_EXTRA_ENVIRONMENT)					\
 	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"				\
 	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
@@ -130,10 +130,7 @@
 	if test "$(?)" = "0"; then \
 	  mkhtml_options=--path="$(abs_srcdir)"; \
 	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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-	@rm -f html/index.sgml.bak
+	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
 	@rm -f version.entities
 	@test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
@@ -189,9 +186,9 @@
 	    echo '-- Installing '$$i ; \
 	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	  done; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(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 a9bd137..f3b2905 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common/m4
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 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 \
@@ -83,24 +109,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,15 +242,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -225,11 +256,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -237,6 +266,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,6 +329,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -470,11 +501,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -610,15 +641,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/common/m4/as-docbook.m4 b/common/m4/as-docbook.m4
index 8a1b32a..2e27050 100644
--- a/common/m4/as-docbook.m4
+++ b/common/m4/as-docbook.m4
@@ -14,7 +14,19 @@
   TYPE_UC=XML
   DOCBOOK_VERSION=4.1.2
 
-  if test ! -f /etc/xml/catalog; then
+  if test -n "$XML_CATALOG_FILES"; then
+    oldIFS=$IFS
+    IFS=' '
+    for xml_catalog_file in $XML_CATALOG_FILES; do
+      if test -f $xml_catalog_file; then
+        XML_CATALOG=$xml_catalog_file
+        CAT_ENTRY_START='<!--'
+        CAT_ENTRY_END='-->'
+        break
+      fi
+    done
+    IFS=$oldIFS
+  elif test ! -f /etc/xml/catalog; then
     for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ;
     do
       if test -d "$i"; then
diff --git a/common/m4/gst-check.m4 b/common/m4/gst-check.m4
index cba7e96..4277053 100644
--- a/common/m4/gst-check.m4
+++ b/common/m4/gst-check.m4
@@ -266,29 +266,29 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-API_VERSION], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_LIBAV([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
+dnl Will set GST_PLUGINS_LIBAV_DIR for use in Makefile.am. Note that this will
+dnl only be set in an uninstalled setup, since -libav ships no .pc file and in
 dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway.
 dnl ===========================================================================
-AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_FFMPEG],
+AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_LIBAV],
 [
-  AG_GST_CHECK_MODULES(GST_PLUGINS_FFMPEG, gstreamer-plugins-ffmpeg-[$1], [$2],
-    [GStreamer FFmpeg Plugins], [no])
+  AG_GST_CHECK_MODULES(GST_PLUGINS_LIBAV, gstreamer-plugins-libav-[$1], [$2],
+    [GStreamer Libav Plugins], [no])
 
-  if test "x$HAVE_GST_PLUGINS_FFMPEG" = "xyes"; then
-    dnl check for where ffmpeg plugins got installed
+  if test "x$HAVE_GST_PLUGINS_LIBAV" = "xyes"; then
+    dnl check for where libav plugins got installed
     dnl this is used for unit tests
     dnl allow setting before calling this macro to override
-    if test -z $GST_PLUGINS_FFMPEG_DIR; then
-      GST_PLUGINS_FFMPEG_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ffmpeg-[$1]`
-      if test -z $GST_PLUGINS_FFMPEG_DIR; then
-        AC_MSG_ERROR([no pluginsdir set in GStreamer FFmpeg Plugins pkg-config file])
+    if test -z $GST_PLUGINS_LIBAV_DIR; then
+      GST_PLUGINS_LIBAV_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-libav-[$1]`
+      if test -z $GST_PLUGINS_LIBAV_DIR; then
+        AC_MSG_ERROR([no pluginsdir set in GStreamer Libav Plugins pkg-config file])
       fi
     fi
-    GST_PLUGINS_FFMPEG_DIR="$GST_PLUGINS_FFMPEG_DIR/ext/ffmpeg"
-    AC_MSG_NOTICE([using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR])
-    AC_SUBST(GST_PLUGINS_FFMPEG_DIR)
+    GST_PLUGINS_LIBAV_DIR="$GST_PLUGINS_LIBAV_DIR/ext/libav"
+    AC_MSG_NOTICE([using GStreamer Libav Plugins in $GST_PLUGINS_LIBAV_DIR])
+    AC_SUBST(GST_PLUGINS_LIBAV_DIR)
   fi
 ])
diff --git a/common/m4/gst-doc.m4 b/common/m4/gst-doc.m4
index 871c346..5d3f0fd 100644
--- a/common/m4/gst-doc.m4
+++ b/common/m4/gst-doc.m4
@@ -20,34 +20,10 @@
 
     dnl check for docbook tools
     AC_CHECK_PROG(HAVE_DOCBOOK2PS, docbook2ps, yes, no)
-    AC_CHECK_PROG(HAVE_DOCBOOK2HTML, docbook2html, yes, no)
+    AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, yes, no)
     AC_CHECK_PROG(HAVE_JADETEX, jadetex, yes, no)
     AC_CHECK_PROG(HAVE_PS2PDF, ps2pdf, yes, no)
 
-    # -V option appeared in 0.6.10
-    docbook2html_min_version=0.6.10
-    if test "x$HAVE_DOCBOOK2HTML" != "xno"; then
-      docbook2html_version=`docbook2html --version`
-      AC_MSG_CHECKING([docbook2html version ($docbook2html_version) >= $docbook2html_min_version])
-      if perl -w <<EOF
-        (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$docbook2html_min_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        (\$docbook2html_version_major, \$docbook2html_version_minor, \$docbook2html_version_micro ) = "$docbook2html_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        exit (((\$docbook2html_version_major > \$min_version_major) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor)) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor) &&
-  	      (\$docbook2html_version_micro >= \$min_version_micro)))
-  	     ? 0 : 1);
-EOF
-      then
-        AC_MSG_RESULT(yes)
-      else
-        AC_MSG_RESULT(no)
-        HAVE_DOCBOOK2HTML=no
-      fi
-    fi
-
     dnl check if we can process docbook stuff
     AS_DOCBOOK(have_docbook=yes, have_docbook=no)
 
@@ -55,45 +31,14 @@
     AC_CHECK_PROG(HAVE_DVIPS, dvips, yes, no)
     AC_CHECK_PROG(HAVE_XMLLINT, xmllint, yes, no)
 
-    dnl check for image conversion tools
-    AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, yes, no)
-    if test "x$HAVE_FIG2DEV" = "xno" ; then
-      AC_MSG_WARN([Did not find fig2dev (from xfig), images will not be generated.])
-    fi
-
-    dnl The following is a hack: if fig2dev doesn't display an error message
-    dnl for the desired type, we assume it supports it.
-    HAVE_FIG2DEV_EPS=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L eps </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_EPS=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PNG=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PNG=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PDF=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PDF=yes
-      fi
-    fi
-
     AC_CHECK_PROG(HAVE_PNGTOPNM, pngtopnm, yes, no)
     AC_CHECK_PROG(HAVE_PNMTOPS,  pnmtops,  yes, no)
     AC_CHECK_PROG(HAVE_EPSTOPDF, epstopdf, yes, no)
 
     dnl check if we can generate HTML
-    if test "x$HAVE_DOCBOOK2HTML" = "xyes" && \
+    if test "x$HAVE_XSLTPROC" = "xyes" && \
        test "x$enable_docbook" = "xyes" && \
-       test "x$HAVE_XMLLINT" = "xyes" && \
-       test "x$HAVE_FIG2DEV_PNG" = "xyes"; then
+       test "x$HAVE_XMLLINT" = "xyes"; then
       DOC_HTML=yes
       AC_MSG_NOTICE(Will output HTML documentation)
      else
@@ -106,7 +51,6 @@
        test "x$enable_docbook" = "xyes" && \
        test "x$HAVE_XMLLINT" = "xyes" && \
        test "x$HAVE_JADETEX" = "xyes" && \
-       test "x$HAVE_FIG2DEV_EPS" = "xyes" && \
        test "x$HAVE_DVIPS" = "xyes" && \
        test "x$HAVE_PNGTOPNM" = "xyes" && \
        test "x$HAVE_PNMTOPS" = "xyes"; then
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index 3f3d565..9a3a923 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -16,7 +16,7 @@
 
   dnl Check for glib with everything
   AG_GST_PKG_CHECK_MODULES(GLIB,
-    glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0)
+    glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0)
 
   if test "x$HAVE_GLIB" = "xno"; then
     AC_MSG_ERROR([This package requires GLib >= $GLIB_REQ to compile.])
@@ -28,7 +28,7 @@
   GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY"
 
   dnl Define G_DISABLE_DEPRECATED for GIT versions
-  if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+  if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED"
   fi
 
@@ -39,7 +39,7 @@
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
     dnl For releases, turn off the cast checks
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_gobject_cast_checks=yes
     else
       enable_gobject_cast_checks=no
@@ -57,7 +57,7 @@
 
   if test "x$enable_glib_assertions" = "xauto"; then
     dnl For releases, turn off the assertions
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_glib_assertions=yes
     else
       enable_glib_assertions=no
diff --git a/common/m4/gst-plugin-docs.m4 b/common/m4/gst-plugin-docs.m4
index dcfd61d..0e2ab6e 100644
--- a/common/m4/gst-plugin-docs.m4
+++ b/common/m4/gst-plugin-docs.m4
@@ -1,4 +1,4 @@
-dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION],[MINIMUM-PYTHON-VERSION])
+dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION])
 dnl
 dnl checks for prerequisites for the common/mangle-tmpl.py script
 dnl used when building the plugin documentation
@@ -6,13 +6,17 @@
 AC_DEFUN([AG_GST_PLUGIN_DOCS],
 [
   AC_BEFORE([GTK_DOC_CHECK],[$0])dnl check for gtk-doc first
-  AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first
+  AC_REQUIRE([AM_PATH_PYTHON])dnl find python first
 
   build_plugin_docs=no
   AC_MSG_CHECKING([whether to build plugin documentation])
   if test x$enable_gtk_doc = xyes; then
-    build_plugin_docs=yes
-    AC_MSG_RESULT([yes])
+    if test x$PYTHON != x; then
+      build_plugin_docs=yes
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no (python not found)])
+    fi
   else
     AC_MSG_RESULT([no (gtk-doc disabled or not available)])
   fi
diff --git a/common/mangle-tmpl.py b/common/mangle-tmpl.py
index bd4f948..51ea8c2 100644
--- a/common/mangle-tmpl.py
+++ b/common/mangle-tmpl.py
@@ -15,6 +15,8 @@
 # read in inspect/*.xml
 # for every tmpl/element-(name).xml: mangle with details from element
 
+from __future__ import print_function, unicode_literals
+
 import glob
 import re
 import sys
diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py
index 9a1cac9..4a9f1fc 100755
--- a/common/scangobj-merge.py
+++ b/common/scangobj-merge.py
@@ -6,6 +6,8 @@
 parse, merge and write gstdoc-scanobj files
 """
 
+from __future__ import print_function, unicode_literals
+
 import sys
 import os
 
@@ -76,13 +78,13 @@
         return "<Object %s>" % self.name
 
     def add_signal(self, signal, overwrite=True):
-        if not overwrite and self._signals.has_key(signal.name):
-            raise IndexError, "signal %s already in %r" % (signal.name, self)
+        if not overwrite and signal.name in self._signals:
+            raise IndexError("signal %s already in %r" % (signal.name, self))
         self._signals[signal.name] = signal
 
     def add_arg(self, arg, overwrite=True):
-        if not overwrite and self._args.has_key(arg.name):
-            raise IndexError, "arg %s already in %r" % (arg.name, self)
+        if not overwrite and arg.name in self._args:
+            raise IndexError("arg %s already in %r" % (arg.name, self))
         self._args[arg.name] = arg
 
 class Docable:
@@ -106,7 +108,7 @@
             lines = open(filename).readlines()
             self.load_data("".join(lines))
         except IOError:
-            print "WARNING - could not read from %s" % filename
+            print ("WARNING - could not read from %s" % filename)
 
     def save_file(self, filename, backup=False):
         """
@@ -117,7 +119,7 @@
             lines = open(filename).readlines()
             olddata = "".join(lines)
         except IOError:
-            print "WARNING - could not read from %s" % filename
+            print ("WARNING - could not read from %s" % filename)
         newdata = self.get_data()
         if olddata and olddata == newdata:
             return
@@ -161,7 +163,7 @@
                 o = nmatch.group('object')
                 debug("Found object", o)
                 debug("Found signal", nmatch.group('signal'))
-                if not self._objects.has_key(o):
+                if o not in self._objects:
                     object = Object(o)
                     self._objects[o] = object
 
@@ -222,7 +224,7 @@
                 o = nmatch.group('object')
                 debug("Found object", o)
                 debug("Found arg", nmatch.group('arg'))
-                if not self._objects.has_key(o):
+                if o not in self._objects:
                     object = Object(o)
                     self._objects[o] = object
 
@@ -233,7 +235,7 @@
                     arg = Arg(**dict)
                     self._objects[o].add_arg(arg)
                 else:
-                    print "ERROR: could not match arg from block %s" % block
+                    print ("ERROR: could not match arg from block %s" % block)
 
     def get_data(self):
         lines = []
diff --git a/common/win32.mak b/common/win32.mak
index c343a04..30e347e 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -51,11 +51,17 @@
 	if test $$fail != 0; then \
 	  echo '-----------------------------------------------------------'; \
 	  echo 'Run this to update the .def files:'; \
-	  echo 'make check-exports 2>&1 | patch -p1'; \
+	  echo 'make update-exports'; \
 	  echo '-----------------------------------------------------------'; \
 	fi; \
 	exit $$fail
 
+update-exports:
+	make check-exports 2>&1 | patch -p1
+	git add win32/common/libgst*.def
+	git diff --cached -- win32/common/
+	echo '^^^--- updated and staged changes above'
+
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
 check-nonportable-print-format:
 	@fail=0 ; \
diff --git a/compile b/compile
index 862a14e..b1f4749 100755
--- a/compile
+++ b/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2012-01-04.17; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
 # Software Foundation, Inc.
@@ -79,48 +79,6 @@
   esac
 }
 
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
-  func_file_conv "$1"
-  if test -z "$lib_path"; then
-    lib_path=$file
-  else
-    lib_path="$lib_path;$file"
-  fi
-  linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
-  lib=$1
-  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
-      lib=$dir/$lib.dll.lib
-      break
-    fi
-    if test -f "$dir/$lib.lib"; then
-      found=yes
-      lib=$dir/$lib.lib
-      break
-    fi
-  done
-  IFS=$save_IFS
-
-  if test "$found" != yes; then
-    lib=$lib.lib
-  fi
-}
-
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -151,34 +109,43 @@
 	      ;;
 	  esac
 	  ;;
-	-I)
-	  eat=1
-	  func_file_conv "$2" mingw
-	  set x "$@" -I"$file"
-	  shift
-	  ;;
 	-I*)
 	  func_file_conv "${1#-I}" mingw
 	  set x "$@" -I"$file"
 	  shift
 	  ;;
-	-l)
-	  eat=1
-	  func_cl_dashl "$2"
-	  set x "$@" "$lib"
-	  shift
-	  ;;
 	-l*)
-	  func_cl_dashl "${1#-l}"
-	  set x "$@" "$lib"
+	  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)
-	  eat=1
-	  func_cl_dashL "$2"
-	  ;;
 	-L*)
-	  func_cl_dashL "${1#-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
diff --git a/config.h.in b/config.h.in
index ff955d8..94f134a 100644
--- a/config.h.in
+++ b/config.h.in
@@ -166,12 +166,25 @@
 /* Define if you have the iconv() function and it works. */
 #undef HAVE_ICONV
 
+/* Define to 1 if the system has the type `intmax_t'. */
+#undef HAVE_INTMAX_T
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and
+   declares uintmax_t. */
+#undef HAVE_INTTYPES_H_WITH_UINTMAX
+
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
+/* Define to 1 if the system has the type long long */
+#undef HAVE_LONG_LONG
+
+/* Define to 1 if the system has the type `long long int'. */
+#undef HAVE_LONG_LONG_INT
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
@@ -202,9 +215,6 @@
 /* defined if the compiler implements __PRETTY_FUNCTION__ */
 #undef HAVE_PRETTY_FUNCTION
 
-/* Defined if we have printf specifier extensions available */
-#undef HAVE_PRINTF_EXTENSION
-
 /* Define to 1 if you have the <process.h> header file. */
 #undef HAVE_PROCESS_H
 
@@ -217,21 +227,22 @@
 /* Have PTHREAD_PRIO_INHERIT. */
 #undef HAVE_PTHREAD_PRIO_INHERIT
 
+/* Define to 1 if the system has the type `ptrdiff_t'. */
+#undef HAVE_PTRDIFF_T
+
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
-/* Define to 1 if you have the `register_printf_function' function. */
-#undef HAVE_REGISTER_PRINTF_FUNCTION
-
-/* Define to 1 if you have the `register_printf_specifier' function. */
-#undef HAVE_REGISTER_PRINTF_SPECIFIER
-
 /* Define to 1 if you have the `sigaction' function. */
 #undef HAVE_SIGACTION
 
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
+/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares
+   uintmax_t. */
+#undef HAVE_STDINT_H_WITH_UINTMAX
+
 /* Define to 1 if you have the <stdio_ext.h> header file. */
 #undef HAVE_STDIO_EXT_H
 
@@ -289,6 +300,9 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define to 1 if the system has the type `unsigned long long int'. */
+#undef HAVE_UNSIGNED_LONG_LONG_INT
+
 /* Define if valgrind should be used */
 #undef HAVE_VALGRIND
 
@@ -409,3 +423,10 @@
 
 /* We need at least WinXP SP2 for __stat64 */
 #undef __MSVCRT_VERSION__
+
+/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
+   not define. */
+#undef intmax_t
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
diff --git a/config.sub b/config.sub
index 6205f84..c894da4 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+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
@@ -225,12 +225,6 @@
 	-isc*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
-	-lynx*178)
-		os=-lynxos178
-		;;
-	-lynx*5)
-		os=-lynxos5
-		;;
 	-lynx*)
 		os=-lynxos
 		;;
@@ -1543,9 +1537,6 @@
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
-	hexagon-*)
-		os=-elf
-		;;
 	tic54x-*)
 		os=-coff
 		;;
diff --git a/configure b/configure
index e967d79..cb16f63 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.69 for GStreamer 1.0.8.
+# Generated by GNU Autoconf 2.69 for GStreamer 1.1.2.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer'
 PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='1.0.8'
-PACKAGE_STRING='GStreamer 1.0.8'
+PACKAGE_VERSION='1.1.2'
+PACKAGE_STRING='GStreamer 1.1.2'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -661,9 +661,9 @@
 DEPRECATED_CFLAGS
 PROFILE_CFLAGS
 GST_LEVEL_DEFAULT
+PRINTF_CFLAGS
 ERROR_CFLAGS
 WARNING_CFLAGS
-GST_PKG_DEPS
 plugindir
 PLUGINDIR
 DATADIR
@@ -681,9 +681,6 @@
 GLIB_LIBS
 GLIB_CFLAGS
 GLIB_REQ
-GST_USING_PRINTF_EXTENSION_DEFINE
-GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE
-GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE
 GST_HAVE_MONOTONIC_CLOCK_FALSE
 GST_HAVE_MONOTONIC_CLOCK_TRUE
 GST_HAVE_MONOTONIC_CLOCK_DEFINE
@@ -746,7 +743,6 @@
 HAVE_EPSTOPDF
 HAVE_PNMTOPS
 HAVE_PNGTOPNM
-HAVE_FIG2DEV
 HAVE_XMLLINT
 HAVE_DVIPS
 CAT_ENTRY_END
@@ -757,7 +753,7 @@
 XSLTPROC
 HAVE_PS2PDF
 HAVE_JADETEX
-HAVE_DOCBOOK2HTML
+HAVE_XSLTPROC
 HAVE_DOCBOOK2PS
 HAVE_INTROSPECTION_FALSE
 HAVE_INTROSPECTION_TRUE
@@ -936,10 +932,6 @@
 GST_VERSION_MICRO
 GST_VERSION_MINOR
 GST_VERSION_MAJOR
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
@@ -948,6 +940,10 @@
 PACKAGE_VERSION_MICRO
 PACKAGE_VERSION_MINOR
 PACKAGE_VERSION_MAJOR
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -1024,8 +1020,8 @@
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-enable_maintainer_mode
 enable_silent_rules
+enable_maintainer_mode
 enable_static
 enable_shared
 with_pic
@@ -1097,6 +1093,7 @@
 CXXCPP
 GTKDOC_DEPS_CFLAGS
 GTKDOC_DEPS_LIBS
+PYTHON
 GLIB_CFLAGS
 GLIB_LIBS
 GIO_CFLAGS
@@ -1641,7 +1638,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 1.0.8 to adapt to many kinds of systems.
+\`configure' configures GStreamer 1.1.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1712,7 +1709,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer 1.0.8:";;
+     short | recursive ) echo "Configuration of GStreamer 1.1.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1720,16 +1717,19 @@
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-maintainer-mode  disable make rules and dependencies not useful
-			  (and sometimes confusing) to the casual installer
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --disable-maintainer-mode
+                          disable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
   --enable-static[=PKGS]  build static libraries [default=no]
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --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
@@ -1819,6 +1819,7 @@
               C compiler flags for GTKDOC_DEPS, overriding pkg-config
   GTKDOC_DEPS_LIBS
               linker flags for GTKDOC_DEPS, overriding pkg-config
+  PYTHON      the Python interpreter
   GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
   GLIB_LIBS   linker flags for GLIB, overriding pkg-config
   GIO_CFLAGS  C compiler flags for GIO, overriding pkg-config
@@ -1890,7 +1891,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer configure 1.0.8
+GStreamer configure 1.1.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2663,7 +2664,7 @@
 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 1.0.8, which was
+It was created by GStreamer $as_me 1.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3158,7 +3159,7 @@
 
 
 
-am__api_version='1.11'
+am__api_version='1.13'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3255,9 +3256,6 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -3268,32 +3266,40 @@
 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
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
 
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -3305,6 +3311,16 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -3327,12 +3343,12 @@
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -3344,10 +3360,10 @@
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   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.
@@ -3486,12 +3502,6 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -3574,6 +3584,45 @@
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+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='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -3596,7 +3645,7 @@
 
 # Define the identity of the package.
  PACKAGE='gstreamer'
- VERSION='1.0.8'
+ VERSION='1.1.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3624,6 +3673,12 @@
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
@@ -3631,86 +3686,125 @@
 AMTAR='$${TAR-tar}'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
-$as_echo_n "checking how to create a ustar tar archive... " >&6; }
-# Loop over all known methods to create a tar archive until one works.
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
-_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      { echo "$as_me:$LINENO: $_am_tar --version" >&5
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
    ($_am_tar --version) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } && break
-    done
-    am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x ustar -w "$$tardir"'
-    am__tar_='pax -L -x ustar -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
-    am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
-    am__untar='cpio -i -H ustar -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_ustar}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
    (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
    ($am__untar <conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
 
-if ${am_cv_prog_tar_ustar+:} false; then :
+  if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -3719,9 +3813,10 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.0.8 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.0.8 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.0.8 | cut -d'.' -f3)
+
+  PACKAGE_VERSION_MAJOR=$(echo 1.1.2 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.1.2 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.1.2 | cut -d'.' -f3)
 
 
 
@@ -3732,7 +3827,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.0.8 | cut -d'.' -f4)
+  NANO=$(echo 1.1.2 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -3791,10 +3886,10 @@
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=0;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   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
@@ -3956,7 +4051,7 @@
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -4800,8 +4895,8 @@
   # 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'.
+  # 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
@@ -4836,16 +4931,16 @@
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -4854,8 +4949,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -4863,7 +4958,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -8325,10 +8420,10 @@
 done
 
 
-  GST_CURRENT=7
+  GST_CURRENT=102
   GST_REVISION=0
-  GST_AGE=7
-  GST_LIBVERSION=7:0:7
+  GST_AGE=102
+  GST_LIBVERSION=102:0:102
 
 
 
@@ -12717,6 +12812,13 @@
 
 
 
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
@@ -17027,8 +17129,8 @@
   # 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'.
+  # 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
@@ -17063,16 +17165,16 @@
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -17081,8 +17183,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -17090,7 +17192,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -17582,8 +17684,8 @@
   # 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'.
+  # 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
@@ -17616,16 +17718,16 @@
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -17634,8 +17736,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -17643,7 +17745,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -17966,8 +18068,8 @@
   # 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'.
+  # 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
@@ -18002,16 +18104,16 @@
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -18020,8 +18122,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -18029,7 +18131,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -21698,15 +21800,15 @@
 fi
 
 
-    # Extract the first word of "docbook2html", so it can be a program name with args.
-set dummy docbook2html; ac_word=$2
+    # Extract the first word of "xsltproc", so it can be a program name with args.
+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 ${ac_cv_prog_HAVE_DOCBOOK2HTML+:} false; then :
+if ${ac_cv_prog_HAVE_XSLTPROC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$HAVE_DOCBOOK2HTML"; then
-  ac_cv_prog_HAVE_DOCBOOK2HTML="$HAVE_DOCBOOK2HTML" # Let the user override the test.
+  if test -n "$HAVE_XSLTPROC"; then
+  ac_cv_prog_HAVE_XSLTPROC="$HAVE_XSLTPROC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -21715,7 +21817,7 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_HAVE_DOCBOOK2HTML="yes"
+    ac_cv_prog_HAVE_XSLTPROC="yes"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -21723,13 +21825,13 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_HAVE_DOCBOOK2HTML" && ac_cv_prog_HAVE_DOCBOOK2HTML="no"
+  test -z "$ac_cv_prog_HAVE_XSLTPROC" && ac_cv_prog_HAVE_XSLTPROC="no"
 fi
 fi
-HAVE_DOCBOOK2HTML=$ac_cv_prog_HAVE_DOCBOOK2HTML
-if test -n "$HAVE_DOCBOOK2HTML"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_DOCBOOK2HTML" >&5
-$as_echo "$HAVE_DOCBOOK2HTML" >&6; }
+HAVE_XSLTPROC=$ac_cv_prog_HAVE_XSLTPROC
+if test -n "$HAVE_XSLTPROC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_XSLTPROC" >&5
+$as_echo "$HAVE_XSLTPROC" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -21813,33 +21915,6 @@
 
 
 
-    # -V option appeared in 0.6.10
-    docbook2html_min_version=0.6.10
-    if test "x$HAVE_DOCBOOK2HTML" != "xno"; then
-      docbook2html_version=`docbook2html --version`
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking docbook2html version ($docbook2html_version) >= $docbook2html_min_version" >&5
-$as_echo_n "checking docbook2html version ($docbook2html_version) >= $docbook2html_min_version... " >&6; }
-      if perl -w <<EOF
-        (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$docbook2html_min_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        (\$docbook2html_version_major, \$docbook2html_version_minor, \$docbook2html_version_micro ) = "$docbook2html_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        exit (((\$docbook2html_version_major > \$min_version_major) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor)) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor) &&
-  	      (\$docbook2html_version_micro >= \$min_version_micro)))
-  	     ? 0 : 1);
-EOF
-      then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-        HAVE_DOCBOOK2HTML=no
-      fi
-    fi
-
 
   XSLTPROC_FLAGS=--nonet
   DOCBOOK_ROOT=
@@ -21847,7 +21922,19 @@
   TYPE_UC=XML
   DOCBOOK_VERSION=4.1.2
 
-  if test ! -f /etc/xml/catalog; then
+  if test -n "$XML_CATALOG_FILES"; then
+    oldIFS=$IFS
+    IFS=' '
+    for xml_catalog_file in $XML_CATALOG_FILES; do
+      if test -f $xml_catalog_file; then
+        XML_CATALOG=$xml_catalog_file
+        CAT_ENTRY_START='<!--'
+        CAT_ENTRY_END='-->'
+        break
+      fi
+    done
+    IFS=$oldIFS
+  elif test ! -f /etc/xml/catalog; then
     for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ;
     do
       if test -d "$i"; then
@@ -22010,71 +22097,6 @@
 
 
 
-        # Extract the first word of "fig2dev", so it can be a program name with args.
-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 ${ac_cv_prog_HAVE_FIG2DEV+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$HAVE_FIG2DEV"; then
-  ac_cv_prog_HAVE_FIG2DEV="$HAVE_FIG2DEV" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_HAVE_FIG2DEV="yes"
-    $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
-
-  test -z "$ac_cv_prog_HAVE_FIG2DEV" && ac_cv_prog_HAVE_FIG2DEV="no"
-fi
-fi
-HAVE_FIG2DEV=$ac_cv_prog_HAVE_FIG2DEV
-if test -n "$HAVE_FIG2DEV"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_FIG2DEV" >&5
-$as_echo "$HAVE_FIG2DEV" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "x$HAVE_FIG2DEV" = "xno" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Did not find fig2dev (from xfig), images will not be generated." >&5
-$as_echo "$as_me: WARNING: Did not find fig2dev (from xfig), images will not be generated." >&2;}
-    fi
-
-            HAVE_FIG2DEV_EPS=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L eps </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_EPS=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PNG=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PNG=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PDF=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PDF=yes
-      fi
-    fi
-
     # Extract the first word of "pngtopnm", so it can be a program name with args.
 set dummy pngtopnm; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -22190,10 +22212,9 @@
 
 
 
-        if test "x$HAVE_DOCBOOK2HTML" = "xyes" && \
+        if test "x$HAVE_XSLTPROC" = "xyes" && \
        test "x$enable_docbook" = "xyes" && \
-       test "x$HAVE_XMLLINT" = "xyes" && \
-       test "x$HAVE_FIG2DEV_PNG" = "xyes"; then
+       test "x$HAVE_XMLLINT" = "xyes"; then
       DOC_HTML=yes
       { $as_echo "$as_me:${as_lineno-$LINENO}: Will output HTML documentation" >&5
 $as_echo "$as_me: Will output HTML documentation" >&6;}
@@ -22207,7 +22228,6 @@
        test "x$enable_docbook" = "xyes" && \
        test "x$HAVE_XMLLINT" = "xyes" && \
        test "x$HAVE_JADETEX" = "xyes" && \
-       test "x$HAVE_FIG2DEV_EPS" = "xyes" && \
        test "x$HAVE_DVIPS" = "xyes" && \
        test "x$HAVE_PNGTOPNM" = "xyes" && \
        test "x$HAVE_PNMTOPS" = "xyes"; then
@@ -22662,27 +22682,16 @@
 
 
 
-    PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \
-                     python1.6 python1.5"
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: Looking for Python version >= 2.1" >&5
-$as_echo "$as_me: Looking for Python version >= 2.1" >&6;}
-        prog="
-import sys, string
-minver = '2.1'
-# split string by '.' and convert to numeric
-minver_info = map(string.atoi, string.split(minver, '.'))
-# we can now do comparisons on the two lists:
-if sys.version_info >= tuple(minver_info):
-	sys.exit(0)
-else:
-	sys.exit(1)"
 
-    python_good=false
-    for python_candidate in $PYTHON_CANDIDATES; do
-      unset PYTHON
-      # Extract the first word of "$python_candidate", so it can be a program name with args.
-set dummy $python_candidate; ac_word=$2
+
+
+        # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+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 ${ac_cv_path_PYTHON+:} false; then :
@@ -22720,80 +22729,178 @@
 $as_echo "no" >&6; }
 fi
 
- 1> /dev/null 2> /dev/null
 
-      if test "x$PYTHON" = "x"; then continue; fi
+  test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
 
-      if $PYTHON -c "$prog" 1>&5 2>&5; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON\":" >&5
-$as_echo_n "checking \"$PYTHON\":... " >&6; }
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5
-$as_echo "okay" >&6; }
-        python_good=true
-        break;
-      else
-                unset ac_cv_path_PYTHON
-      fi
-    done
+    fi
+    am_display_PYTHON=python
 
 
-  if test "$python_good" != "true"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No suitable version of python found" >&5
-$as_echo "$as_me: WARNING: No suitable version of python found" >&2;}
-    PYTHON=
+  if test "$PYTHON" = :; then
+      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
   else
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration" >&5
-$as_echo_n "checking local Python configuration... " >&6; }
 
-
-
-    PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
-
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if ${am_cv_python_version+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+  PYTHON_VERSION=$am_cv_python_version
 
 
 
   PYTHON_PREFIX='${prefix}'
 
-
   PYTHON_EXEC_PREFIX='${exec_prefix}'
 
 
 
-  PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if ${am_cv_python_platform+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+  PYTHON_PLATFORM=$am_cv_python_platform
 
 
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
 
 
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if ${am_cv_python_pythondir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
 
-  pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+  pythondir=$am_cv_python_pythondir
 
 
 
   pkgpythondir=\${pythondir}/$PACKAGE
 
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if ${am_cv_python_pyexecdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
 
-  pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+  pyexecdir=$am_cv_python_pyexecdir
 
 
 
   pkgpyexecdir=\${pyexecdir}/$PACKAGE
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5
-$as_echo "looks good" >&6; }
+
 
   fi
 
 
 
+
   build_plugin_docs=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build plugin documentation" >&5
 $as_echo_n "checking whether to build plugin documentation... " >&6; }
   if test x$enable_gtk_doc = xyes; then
-    build_plugin_docs=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+    if test x$PYTHON != x; then
+      build_plugin_docs=yes
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (python not found)" >&5
+$as_echo "no (python not found)" >&6; }
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (gtk-doc disabled or not available)" >&5
 $as_echo "no (gtk-doc disabled or not available)" >&6; }
@@ -24377,6 +24484,53 @@
 
     LIBS="$LIBS -lrt"
 
+else
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lpthread" >&5
+$as_echo_n "checking for clock_gettime in -lpthread... " >&6; }
+if ${ac_cv_lib_pthread_clock_gettime+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $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 clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_pthread_clock_gettime=yes
+else
+  ac_cv_lib_pthread_clock_gettime=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_pthread_clock_gettime" >&5
+$as_echo "$ac_cv_lib_pthread_clock_gettime" >&6; }
+if test "x$ac_cv_lib_pthread_clock_gettime" = xyes; then :
+
+      $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+
+      LIBS="$LIBS -lpthread"
+
+fi
+
+
 fi
 
 
@@ -24626,35 +24780,6 @@
 
 
 
-for ac_func in register_printf_specifier register_printf_function
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- HAVE_PRINTF_EXTENSION=yes
-fi
-done
-
-
-if test "$HAVE_PRINTF_EXTENSION" = yes; then
-  GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\""
-  GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE="#define GST_SEGMENT_FORMAT \"Q\""
-  GST_USING_PRINTF_EXTENSION_DEFINE="#define GST_USING_PRINTF_EXTENSION"
-
-$as_echo "#define HAVE_PRINTF_EXTENSION 1" >>confdefs.h
-
-else
-    GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\""
-    GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE="#define GST_SEGMENT_FORMAT \"p\""
-    GST_USING_PRINTF_EXTENSION_DEFINE="#undef GST_USING_PRINTF_EXTENSION"
-fi
-
-
-
-
 save_cflags="$CFLAGS"
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladdr in -ldl" >&5
@@ -24702,6 +24827,280 @@
 
 CFLAGS="$save_cflags"
 
+if test "x${GST_DISABLE_GST_DEBUG}" != "xyes"; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+  /* Test preprocessor.  */
+      #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+        error in preprocessor;
+      #endif
+      #if ! (18446744073709551615ULL <= -1ull)
+        error in preprocessor;
+      #endif
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+		     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+		     ? 1 : -1)];
+      int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+	      | (llmax / ll) | (llmax % ll)
+	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+	      | (ullmax / ull) | (ullmax % ull));
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  			if test "$cross_compiling" = yes; then :
+  ac_cv_type_long_long_int=yes
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+	       #ifndef LLONG_MAX
+	       # define HALF \
+			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
+	       # define LLONG_MAX (HALF - 1 + HALF)
+	       #endif
+int
+main ()
+{
+long long int n = 1;
+	       int i;
+	       for (i = 0; ; i++)
+		 {
+		   long long int m = n << i;
+		   if (m >> i != n)
+		     return 1;
+		   if (LLONG_MAX / 2 < m)
+		     break;
+		 }
+	       return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_type_long_long_int=yes
+else
+  ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+else
+  ac_cv_type_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
+$as_echo "$ac_cv_type_long_long_int" >&6; }
+  if test $ac_cv_type_long_long_int = yes; then
+
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+  /* Test preprocessor.  */
+      #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+        error in preprocessor;
+      #endif
+      #if ! (18446744073709551615ULL <= -1ull)
+        error in preprocessor;
+      #endif
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+		     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+		     ? 1 : -1)];
+      int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+	      | (llmax / ll) | (llmax % ll)
+	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+	      | (ullmax / ull) | (ullmax % ull));
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_type_unsigned_long_long_int=yes
+else
+  ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+  fi
+
+
+  if test x$ac_cv_type_long_long_int$ac_cv_type_unsigned_long_long_int = xyesyes; then
+
+$as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if ${gl_cv_header_inttypes_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <inttypes.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_inttypes_h=yes
+else
+  gl_cv_header_inttypes_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5
+$as_echo "$gl_cv_header_inttypes_h" >&6; }
+  if test $gl_cv_header_inttypes_h = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
+
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if ${gl_cv_header_stdint_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <stdint.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_stdint_h=yes
+else
+  gl_cv_header_stdint_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5
+$as_echo "$gl_cv_header_stdint_h" >&6; }
+  if test $gl_cv_header_stdint_h = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H_WITH_UINTMAX 1
+_ACEOF
+
+  fi
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_PTRDIFF_T 1
+_ACEOF
+
+
+fi
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
+if test "x$ac_cv_type_intmax_t" = xyes; then :
+
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
+
+else
+  test $ac_cv_type_long_long_int = yes \
+       && ac_type='long long int' \
+       || ac_type='long int'
+
+cat >>confdefs.h <<_ACEOF
+#define intmax_t $ac_type
+_ACEOF
+
+fi
+
+
+  ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+fi
+
 
 GLIB_REQ=2.32.0
 
@@ -24715,7 +25114,7 @@
 
 
 
-  which="glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0"
+  which="glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0"
     required="no"
 
 
@@ -24816,7 +25215,7 @@
 
         GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY"
 
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED"
   fi
 
@@ -24829,7 +25228,7 @@
 
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
-        if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+        if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_gobject_cast_checks=yes
     else
       enable_gobject_cast_checks=no
@@ -24849,7 +25248,7 @@
 
 
   if test "x$enable_glib_assertions" = "xauto"; then
-        if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+        if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_glib_assertions=yes
     else
       enable_glib_assertions=no
@@ -25147,11 +25546,13 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
+                           { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
                            enable_Bsymbolic=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
+                           { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
                            enable_Bsymbolic=no
 fi
@@ -25279,9 +25680,6 @@
 
 
 
-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"
@@ -25673,6 +26071,44 @@
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wno-format-nonliteral" >&5
+$as_echo_n "checking to see if compiler understands -Wno-format-nonliteral... " >&6; }
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Wno-format-nonliteral"
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  flag_ok=yes
+else
+  flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+
+  if test "X$flag_ok" = Xyes ; then
+    PRINTF_CFLAGS="-Wno-format-nonliteral"
+    true
+  else
+
+    true
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+
+
+
       if test "x$GST_GIT" = "xyes"; then
     GST_LEVEL_DEFAULT=GST_LEVEL_ERROR
   else
@@ -26304,7 +26740,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/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/memory/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 gstreamer.spec"
+ac_config_files="$ac_config_files Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile gst/printf/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/memory/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 gstreamer.spec"
 
 
 sed \
@@ -26451,6 +26887,14 @@
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -27077,7 +27521,7 @@
 # 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 1.0.8, which was
+This file was extended by GStreamer $as_me 1.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -27143,7 +27587,7 @@
 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 1.0.8
+GStreamer config.status 1.1.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -27684,6 +28128,7 @@
     "gst/gstconfig.h") CONFIG_FILES="$CONFIG_FILES gst/gstconfig.h" ;;
     "gst/gstversion.h") CONFIG_FILES="$CONFIG_FILES gst/gstversion.h" ;;
     "gst/parse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/parse/Makefile" ;;
+    "gst/printf/Makefile") CONFIG_FILES="$CONFIG_FILES gst/printf/Makefile" ;;
     "libs/Makefile") CONFIG_FILES="$CONFIG_FILES libs/Makefile" ;;
     "libs/gst/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/Makefile" ;;
     "libs/gst/base/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/base/Makefile" ;;
@@ -28337,7 +28782,7 @@
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -28350,7 +28795,7 @@
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -28384,21 +28829,19 @@
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
diff --git a/configure.ac b/configure.ac
index ecce763..f74756e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,12 +1,10 @@
-AC_PREREQ(2.62)
+AC_PREREQ([2.68])
 
 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
 dnl
-AC_INIT(GStreamer, 1.0.8,
-    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
-    gstreamer)
+AC_INIT([GStreamer],[1.1.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
 AG_GST_INIT
 
 dnl initialize automake (we require GNU make)
@@ -57,8 +55,16 @@
 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
+dnl
+dnl Keep CURRENT as MINOR * 100 + MICRO
+dnl Ex : 1.0.0 => 0
+dnl      1.0.3 => 3
+dnl      1.1.0 => 100
+dnl      1.2.5 => 205
+dnl      1.10.9 (who knows) => 1009
+dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 7, 0, 7)
+AS_LIBTOOL(GST, 102, 0, 102)
 
 dnl *** autotools stuff ****
 
@@ -152,7 +158,7 @@
 
 dnl building of tests
 AC_ARG_ENABLE(tests,
-  AC_HELP_STRING([--disable-tests], [disable building test apps]),
+  AS_HELP_STRING([--disable-tests],[disable building test apps]),
   [
     case "${enableval}" in
       yes) BUILD_TESTS=yes ;;
@@ -165,8 +171,7 @@
 
 dnl tests known to fail
 AC_ARG_ENABLE(failing-tests,
-  AC_HELP_STRING([--disable-failing-tests],
-    [disable building tests known to fail]),
+  AS_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
   [
     case "${enableval}" in
       yes) BUILD_FAILING_TESTS=yes ;;
@@ -184,7 +189,7 @@
 
 dnl building of benchmarks
 AC_ARG_ENABLE(benchmarks,
-  AC_HELP_STRING([--disable-benchmarks], [disable building benchmarks apps]),
+  AS_HELP_STRING([--disable-benchmarks],[disable building benchmarks apps]),
   [
     case "${enableval}" in
       yes) BUILD_BENCHMARKS=yes ;;
@@ -197,7 +202,7 @@
 
 dnl building of tools
 AC_ARG_ENABLE(tools,
-  AC_HELP_STRING([--disable-tools], [disable building tools]),
+  AS_HELP_STRING([--disable-tools],[disable building tools]),
   [
     case "${enableval}" in
       yes) BUILD_TOOLS=yes ;;
@@ -210,8 +215,7 @@
 
 dnl poison destroyed objects
 AC_ARG_ENABLE(poisoning,
-  AC_HELP_STRING([--enable-poisoning],
-    [enable poisoning of deallocated objects]),
+  AS_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
   [
     case "${enableval}" in
       yes) USE_POISONING=yes ;;
@@ -273,7 +277,7 @@
 dnl CXX may be set to some default even if no c++ compiler is available
 dnl (thanks autotools!), so just try to compile some c++ code to make sure
 AC_LANG_PUSH([C++])
-AC_TRY_COMPILE([ class Foo { int bar; };], , working_cxx=yes, working_cxx=no)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ class Foo { int bar; };]], [[]])],[working_cxx=yes],[working_cxx=no])
 AC_LANG_POP([C++])
 AC_MSG_NOTICE([working c++ compiler found: $working_cxx])
 AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes")
@@ -299,8 +303,7 @@
 dnl check for documentation tools
 AG_GST_DOCBOOK_CHECK
 GTK_DOC_CHECK([1.12])
-AS_PATH_PYTHON([2.1])
-AG_GST_PLUGIN_DOCS([1.3],[2.1])
+AG_GST_PLUGIN_DOCS([1.12])
 
 dnl *** checks for libraries ***
 
@@ -380,14 +383,14 @@
 dnl Actually check for 128-bit division, since that's what we use
 dnl uint128_t for.
 AC_CACHE_CHECK(for __uint128_t, gst_cv_uint128_t,
-    AC_TRY_LINK([ ], [
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
       static __uint128_t v1 = 100;
       static __uint128_t v2 = 10;
       static __uint128_t u;
       u = v1 / v2;
-    ], [
+    ]])],[
       gst_cv_uint128_t=yes
-    ], [
+    ],[
       gst_cv_uint128_t=no
     ])
 )
@@ -477,22 +480,27 @@
   AC_CHECK_LIB(rt, clock_gettime, [
     AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
     LIBS="$LIBS -lrt"
+  ], [
+    AC_CHECK_LIB(pthread, clock_gettime, [
+      AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
+      LIBS="$LIBS -lpthread"
+    ])
   ])
 ])
 
 AC_CACHE_CHECK(for posix timers, gst_cv_posix_timers,
-    AC_TRY_COMPILE([
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <time.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-    ], [
+    ]], [[
 #if !defined(_POSIX_TIMERS) || _POSIX_TIMERS < 0 || !defined(CLOCK_REALTIME)
 #error Either _POSIX_TIMERS or CLOCK_REALTIME not defined
 #endif
-    ], [
+    ]])],[
       gst_cv_posix_timers=yes
-    ], [
+    ],[
       gst_cv_posix_timers=no
     ])
 )
@@ -507,18 +515,18 @@
 AM_CONDITIONAL(GST_HAVE_POSIX_TIMERS, test "$gst_cv_posix_timers" = "yes")
 
 AC_CACHE_CHECK(for monotonic clock, gst_cv_monotonic_clock,
-    AC_TRY_COMPILE([
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <time.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-    ], [
+    ]], [[
 #if !defined(_POSIX_MONOTONIC_CLOCK) || _POSIX_MONOTONIC_CLOCK < 0 || !defined(CLOCK_MONOTONIC)
 #error Either _POSIX_MONOTONIC_CLOCK or CLOCK_MONOTONIC not defined
 #endif
-    ], [
+    ]])],[
       gst_cv_monotonic_clock=yes
-    ], [
+    ],[
       gst_cv_monotonic_clock=no
     ])
 )
@@ -535,25 +543,6 @@
 dnl Check for a way to display the function name in debug output
 AG_GST_CHECK_FUNCTION
 
-dnl test for register_printf_specifier or register_printf_function
-AC_CHECK_FUNCS([register_printf_specifier register_printf_function],
-    [HAVE_PRINTF_EXTENSION=yes])
-
-if test "$HAVE_PRINTF_EXTENSION" = yes; then
-  GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\""
-  GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE="#define GST_SEGMENT_FORMAT \"Q\""
-  GST_USING_PRINTF_EXTENSION_DEFINE="#define GST_USING_PRINTF_EXTENSION"
-  AC_DEFINE(HAVE_PRINTF_EXTENSION, 1,
-      [Defined if we have printf specifier extensions available])
-else
-    GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\""
-    GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE="#define GST_SEGMENT_FORMAT \"p\""
-    GST_USING_PRINTF_EXTENSION_DEFINE="#undef GST_USING_PRINTF_EXTENSION"
-fi
-AC_SUBST(GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE)
-AC_SUBST(GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE)
-AC_SUBST(GST_USING_PRINTF_EXTENSION_DEFINE)
-
 dnl test if we have dladdr(); we use it for debugging; see gst/gstinfo.c
 save_cflags="$CFLAGS"
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
@@ -562,6 +551,27 @@
    LIBS="$LIBS -ldl")
 CFLAGS="$save_cflags"
 
+dnl Check printf stuff
+if test "x${GST_DISABLE_GST_DEBUG}" != "xyes"; then
+  AC_TYPE_LONG_LONG_INT
+  AC_TYPE_UNSIGNED_LONG_LONG_INT
+
+  if test x$ac_cv_type_long_long_int$ac_cv_type_unsigned_long_long_int = xyesyes; then
+    AC_DEFINE([HAVE_LONG_LONG], [1], [Define to 1 if the system has the type long long])
+  fi
+
+  dnl /usr/share/aclocal/inttypes_h.m4 - ships with gettext apparently
+  gl_AC_HEADER_INTTYPES_H
+
+  dnl /usr/share/aclocal/stdint_h.m4 - ships with gettext apparently
+  gl_AC_HEADER_STDINT_H
+
+  AC_CHECK_TYPES(ptrdiff_t)
+
+  AC_TYPE_INTMAX_T
+  AC_TYPE_SIZE_T
+fi
+
 dnl *** checks for dependency libraries ***
 
 dnl GLib
@@ -574,7 +584,7 @@
 
 dnl building of unit test libraries
 AC_ARG_ENABLE(check,
-  AC_HELP_STRING([--disable-check], [disable building unit test libraries]),
+  AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
   [
     case "${enableval}" in
       yes) BUILD_CHECK=yes ;;
@@ -614,16 +624,15 @@
 dnl Check for -Bsymbolic-functions linker flag used to avoid
 dnl intra-library PLT jumps, if available.
 AC_ARG_ENABLE(Bsymbolic,
-              [AC_HELP_STRING([--disable-Bsymbolic],
-                              [avoid linking with -Bsymbolic])],,
+              [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
               [SAVED_LDFLAGS="${LDFLAGS}"
                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
                LDFLAGS=-Wl,-Bsymbolic-functions
-               AC_TRY_LINK([], [int main (void) { return 0; }],
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],[
                            AC_MSG_RESULT(yes)
-                           enable_Bsymbolic=yes,
+                           enable_Bsymbolic=yes],[
                            AC_MSG_RESULT(no)
-                           enable_Bsymbolic=no)
+                           enable_Bsymbolic=no])
                LDFLAGS="${SAVED_LDFLAGS}"])
 
 
@@ -643,9 +652,6 @@
 dnl set location of plugin directory
 AG_GST_SET_PLUGINDIR
 
-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
@@ -655,6 +661,10 @@
 dnl define an ERROR_CFLAGS Makefile variable
 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 special warning flags for gst/printf
+AS_COMPILER_FLAG([-Wno-format-nonliteral], [PRINTF_CFLAGS="-Wno-format-nonliteral"])
+AC_SUBST(PRINTF_CFLAGS)
+
 dnl define correct level for debugging messages
 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
 
@@ -758,6 +768,7 @@
 gst/gstconfig.h
 gst/gstversion.h
 gst/parse/Makefile
+gst/printf/Makefile
 libs/Makefile
 libs/gst/Makefile
 libs/gst/base/Makefile
diff --git a/depcomp b/depcomp
index 25a39e6..bd0ac08 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2011-12-04.11; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# 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
@@ -28,7 +28,7 @@
 
 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*)
@@ -40,8 +40,8 @@
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by 'PROGRAMS ARGS'.
-  object      Object file output by 'PROGRAMS ARGS'.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputting dependencies.
@@ -57,12 +57,6 @@
     ;;
 esac
 
-# A tabulation character.
-tab='	'
-# A newline character.
-nl='
-'
-
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -108,12 +102,6 @@
    depmode=msvc7
 fi
 
-if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
-fi
-
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -168,14 +156,15 @@
 ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
+## This next piece of magic avoids the `deleted header file' problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
-## Some versions of gcc put a space before the ':'.  On the theory
+  tr ' ' '
+' < "$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.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
@@ -214,15 +203,18 @@
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like '#:fec' to the end of the
+    # the IRIX cc adds comments like `#:fec' to the end of the
     # dependency line.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+    tr '
+' ' ' >> "$depfile"
     echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"
   else
@@ -234,17 +226,10 @@
   rm -f "$tmpdepfile"
   ;;
 
-xlc)
-  # 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
-  ;;
-
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -274,11 +259,12 @@
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
+    # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
+    # `$object: dependent.h' and one to simply `dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -289,26 +275,23 @@
   ;;
 
 icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want
+  # which is wrong.  We want:
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using \ :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
+
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -317,21 +300,15 @@
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -367,7 +344,7 @@
   done
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add 'dependent.h:' lines.
+    # Add `dependent.h:' lines.
     sed -ne '2,${
 	       s/^ *//
 	       s/ \\*$//
@@ -382,9 +359,9 @@
 
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
+   # dependencies in `foo.d' instead, so we check for that too.
    # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=
@@ -430,7 +407,8 @@
    done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
@@ -465,11 +443,11 @@
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
+s/\(.*\)/	\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/'"$tab"'/
+  s/.*/	/
   G
   p
 }' >> "$depfile"
@@ -500,7 +478,7 @@
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -520,14 +498,15 @@
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for ':'
+  # Require at least two characters before searching for `:'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
+  tr ' ' '
+' < "$tmpdepfile" | \
 ## 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"
@@ -583,7 +562,8 @@
   # 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 ' ' "$nl" | \
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
 ## 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"
@@ -603,7 +583,7 @@
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -672,8 +652,8 @@
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
-  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 61d0b57..e7f7bec 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,15 +79,14 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/version.entities.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/version.entities.in README
 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 \
@@ -84,33 +110,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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 = version.entities
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -118,9 +153,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -247,15 +302,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -265,11 +316,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -277,6 +326,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -339,6 +389,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -485,22 +536,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -515,57 +569,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -581,12 +590,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -598,15 +602,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -615,6 +615,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -778,23 +793,21 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-	ctags-recursive install install-am install-strip \
-	tags-recursive
+.MAKE: $(am__recursive_targets) all check install install-am \
+	install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 upload:
diff --git a/docs/README b/docs/README
index 9eb7f7d..950de89 100644
--- a/docs/README
+++ b/docs/README
@@ -26,7 +26,7 @@
 * The source for the documentation is:
   - one or more .xml files, with the main one being gstreamer-(whatever).xml
   - image files
-    - in .fig
+    - in .svg
     - in .png (and maybe others)
 * We want to generate docs in HTML, PS and PDF
 * We want to use xml to to generate these
@@ -387,7 +387,6 @@
 gtk-doc
 
 Other stuff:
-transfig
 pdftops
 
 DEVHELP INTEGRATION
diff --git a/docs/design/Makefile.am b/docs/design/Makefile.am
index ae107a3..5a0eda0 100644
--- a/docs/design/Makefile.am
+++ b/docs/design/Makefile.am
@@ -7,6 +7,7 @@
 	part-buffering.txt \
 	part-caps.txt \
 	part-clocks.txt \
+	part-context.txt \
 	part-conventions.txt \
 	part-dynamic.txt \
 	part-element-sink.txt \
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 732373d..fa94004 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs/design
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,24 +109,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,15 +242,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -225,11 +256,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -237,6 +266,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,6 +329,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -397,6 +428,7 @@
 	part-buffering.txt \
 	part-caps.txt \
 	part-clocks.txt \
+	part-context.txt \
 	part-conventions.txt \
 	part-dynamic.txt \
 	part-element-sink.txt \
@@ -475,11 +507,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -614,15 +646,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 html:
diff --git a/docs/design/part-caps.txt b/docs/design/part-caps.txt
index a768b6d..b5bf520 100644
--- a/docs/design/part-caps.txt
+++ b/docs/design/part-caps.txt
@@ -2,7 +2,8 @@
 ----
 
 Caps are lighweight refcounted objects describing media types.
-They are composed of an array of GstStructures.
+They are composed of an array of GstStructures plus optionally
+a GstCapsFeatures set for the GstStructure.
 
 Caps are exposed on GstPadTemplates to describe all possible types a
 given pad can handle. They are also stored in the registry along with
@@ -16,3 +17,132 @@
 Various methods exist to work with the media types such as subtracting
 or intersecting.
 
+Operations
+~~~~~~~~~~
+Fixating
+--------
+Caps are fixed if they only contain a single structure and this
+structure is fixed. A structure is fixed if none of the fields of the
+structure is a unfixed types, for example a range, list or array.
+
+For fixating caps only the first structure is kept as the order of
+structures is meant to express the preferences for the different
+structures.
+Afterwards each unfixed field of this structure is set to a value
+that makes most sense for the media format by the element or pad
+implementation and afterwards every remaining unfixed fields is set to
+an arbitrary value that would be a subset of the unfixed field value.
+
+EMPTY caps are fixed caps, ANY caps are not fixed. Caps with ANY caps
+features are not fixed.
+
+Subset
+------
+One caps "A" is the subset of another caps "B" if for each structure in
+"A" there exists a structure in "B" that is a superset of the structure
+in "A".
+
+A structure "a" is the subset of a structure "b" if it has the same 
+structure name, the same caps features and each field in "b" exists
+in "a" and the value of the field in "a" is a subset of the value of
+the field in "b". "a" can have additional fields that are not in "b".
+
+EMPTY caps are a subset of every other caps, every caps are a subset of
+ANY caps.
+
+Equality
+--------
+Caps "A" and "B" are equal if "A" is a subset of "B" and "B" is a subset
+of "A". This means that both caps are expressing the same possibilities
+but their structures can still be different if they contain unfixed
+fields.
+
+Intersection
+------------
+The intersection of caps "A" and caps "B" are the caps that contain the
+intersection of all their structures with each other.
+
+The intersection of structure "a" and structure "b" is empty if their
+structure name or their caps features are not equal, or if "a" and "b"
+contain the same field but the intersection of both field values is empty.
+If one structure contains a field that is not existing in the other
+structure it will be copied over to the intersection with the same
+value.
+
+The intersection with ANY caps is always the other caps, the
+intersection with EMPTY caps is always EMPTY.
+
+Union
+-----
+The union of caps "A" and caps "B" are the caps that contain the union
+of all their structures with each other.
+
+The union of structure "a" and structure "b" are the two structures "a"
+and "b" if the structure names or caps features are not equal. Otherwise
+the union is the structure that contains the union of each fields value.
+If a field is only in one of the two structures it is not contained in
+the union.
+
+The union with ANY caps is always ANY, the union with EMPTY caps is
+always the other caps.
+
+Subtraction
+-----------
+The subtraction of caps "A" from caps "B" is the most generic subset
+of "B" that has an empty intersection with "A" but only contains
+structures with names and caps features that are existing in "B".
+
+Basic Rules
+~~~~~~~~~~~
+
+Semantics of caps and their usage
+---------------------------------
+A caps can contain multiple structures, in which case any of the
+structures would be acceptable. The structures are in the preferred
+order of the creator of the caps, with the preferred structure being
+first and during negotiation of caps this order should be considered to
+select the most optimal structure.
+
+Each of these structures has a name that specifies the media type, e.g.
+"video/x-theora" to specify Theora video. Additional fields in the
+structure add additional constraints and/or information about the media
+type, like the width and height of a video frame, or the codec profile
+that is used. These fields can be non-fixed (e.g. ranges) for non-fixed
+caps but must be fixed to a fixed value during negotiation.
+If a field is included in the caps returned by a pad via the CAPS query,
+it imposes an additional constraint during negotiation. The caps in the
+end must have this field with a value that is a subset of the non-fixed
+value. Additional fields that are added in the negotiated caps give
+additional information about the media but are treated as optional.
+Information that can change for every buffer and are not relevant during
+negotiation must not be stored inside the caps.
+
+
+For each of the structures in caps it is possible to store caps
+features. The caps features are expressing additional requirements
+for a specific structure, and only structures with the same name _and_
+equal caps features are considered compatible.
+Caps features can be used to require a specific memory representation
+or a specific meta to be set on buffers, for example a pad could require
+for a specific structure that it is passed EGLImage memory or buffers
+with the video meta.
+If not caps features are provided for a structure, it is assumed that
+system memory is required unless later negotiation steps (e.g. the
+ALLOCATION query) detect that something else can be used. The special
+ANY caps features can be used to specify that any caps feature would
+be accepted, for example if the buffer memory is not touched at all.
+
+
+Compatibility of caps
+---------------------
+Pads can be linked when the caps of both caps are compatible. This is
+the case when their intersection is not empty.
+
+For checking if a pad actually supports a fixed caps an intersection is
+not enough. Instead the fixed caps must be at least a subset of the
+pad's caps but pads can introduce additional constraints which would be
+checked in the ACCEPT_CAPS query handler.
+
+Data flow can only happen after pads have decided on a common, fixed
+caps and these caps are distributed to both pads with the CAPS event.
+
diff --git a/docs/design/part-context.txt b/docs/design/part-context.txt
new file mode 100644
index 0000000..ad2073b
--- /dev/null
+++ b/docs/design/part-context.txt
@@ -0,0 +1,67 @@
+Context
+-------
+
+GstContext is a container object, containing a generic GstStructure.
+It is used to store and propagate context information in a pipeline,
+like device handles, display server connections and other information
+that should be shared between multiple elements in a pipeline.
+
+For sharing context objects and distributing them between application
+and elements in a pipeline, there are downstream queries, downstream
+events, messages and functions to set a context on a complete pipeline.
+
+
+Context types
+~~~~~~~~~~~~~
+Context type names should be unique and be put in appropiate namespaces,
+e.g. "gst.egl.EGLDisplay", go prevent name conflicts. Only one specific
+type is allowed per context type name.
+
+
+Elements
+~~~~~~~~
+Elements that need a specific context for their operation would
+do the following steps until one succeeds:
+
+ 1) Check if the element already has a context of the specific type,
+    i.e. by checking the context returned by gst_element_get_context()
+
+ 2) Query downstream with GST_QUERY_CONTEXT for the context and check if
+    downstream already has a context of the specific type
+
+ 3) Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required
+    context types and afterwards check if a usable context was set now
+    as in 1). The message could be handled by the parent bins of the
+    element and the application.
+
+ 4) Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
+    and send a GST_EVENT_CONTEXT event downstream, containing the complete
+    context information at this time.
+
+
+Bins will propagate any context that is set on them via
+gst_element_set_context() to their child elements, including newly added
+elements after the context was set.
+
+Bins can handle the GST_MESSAGE_NEED_CONTEXT message, can filter both
+messages and can also set different contexts for different pipeline parts.
+
+
+Applications
+~~~~~~~~~~~~
+Applications can set a specific context on a pipeline or elements inside
+a pipeline with gst_element_set_context().
+
+If an element inside the pipeline needs a specific context, it will post
+a GST_MESSAGE_NEED_CONTEXT message on the bus. The application can now
+create a context of the requested type or pass an already existing
+context to the element (or the complete pipeline).
+
+Whenever an element creates a context internally it will post a
+GST_MESSAGE_HAVE_CONTEXT message on the bus. Applications should store
+the context of these messages, for example by creating a GstContext
+containing all the contexts of the pipeline by merging the structures.
+Applications can also just set the context contained in the
+GST_MESSAGE_HAVE_CONTEXT message on the complete pipeline to make sure it
+is shared between all elements.
+
diff --git a/docs/design/part-gstbin.txt b/docs/design/part-gstbin.txt
index bf486f8..a262a9b 100644
--- a/docs/design/part-gstbin.txt
+++ b/docs/design/part-gstbin.txt
@@ -95,11 +95,12 @@
 use the cached version. The reason for caching the result is because the
 duration of a stream typically does not change that often.
 
-A GST_MESSAGE_DURATION posted by an element will clear the cached duration value
-so that the bin will query the sinks again. This message is typically posted by
-elements that calculate the duration of the stream based on some average
-bitrate, which might change while playing the stream. The DURATION message is
-posted to the application, which can then fetch the updated DURATION.
+A GST_MESSAGE_DURATION_CHANGED posted by an element will clear the cached
+duration value so that the bin will query the sinks again. This message is
+typically posted by elements that calculate the duration of the stream based
+on some average bitrate, which might change while playing the stream. The
+DURATION_CHANGED message is posted to the application, which can then fetch
+the updated DURATION.
 
 
 Subclassing
diff --git a/docs/design/part-messages.txt b/docs/design/part-messages.txt
index 6e23d5b..171cdab 100644
--- a/docs/design/part-messages.txt
+++ b/docs/design/part-messages.txt
@@ -110,7 +110,7 @@
   An element or bin completed playback of a segment. This message is only posted
   on the bus if a SEGMENT seek is performed on a pipeline.
 
-GST_MESSAGE_DURATION:
+GST_MESSAGE_DURATION_CHANGED:
 
   An element posts this message when it has detected or updated the stream duration.
 
diff --git a/docs/design/part-scheduling.txt b/docs/design/part-scheduling.txt
index a4fbdb7..c1dd331 100644
--- a/docs/design/part-scheduling.txt
+++ b/docs/design/part-scheduling.txt
@@ -67,8 +67,9 @@
  (out) "flags", GST_TYPE_SCHEDULING_FLAGS (default 0)
 
      typedef enum {
-       GST_SCHEDULING_FLAG_SEEKABLE      = (1 << 0),
-       GST_SCHEDULING_FLAG_SEQUENTIAL    = (1 << 1)
+       GST_SCHEDULING_FLAG_SEEKABLE           = (1 << 0),
+       GST_SCHEDULING_FLAG_SEQUENTIAL         = (1 << 1),
+       GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED  = (1 << 2)
      } GstSchedulingFlags;
 
    _SEEKABLE:
@@ -80,6 +81,15 @@
          seeks are allowed but should be avoided. This is common for network
          streams.
 
+   _BANDWIDTH_LIMITED:
+       - suggest the element supports buffering data for downstream to
+         cope with bandwidth limitations. If this flag is on the
+         downstream element might ask for more data than necessary for
+         normal playback. This use-case is interesting for on-disk
+         buffering scenarios for instance. Seek operations might be
+         slow as well so downstream elements should take this into
+         consideration.
+
  (out) "minsize", G_TYPE_INT (default 1)
        - the suggested minimum size of pull requests
 
diff --git a/docs/design/part-toc.txt b/docs/design/part-toc.txt
index bb7a477..bb1042f 100644
--- a/docs/design/part-toc.txt
+++ b/docs/design/part-toc.txt
@@ -58,6 +58,15 @@
 The best way to process already created GstToc is to recursively go through
 the 'entries' and 'subentries' fields.
 
+Applications and plugins should not rely on TOCs having a certain kind of
+structure, but should allow for different alternatives. For example, a
+simple CUE sheet embedded in a file may be presented as a flat list of
+track entries, or could have a top-level edition node (or some other
+alternative type entry) with track entries underneath that node; or even
+multiple top-level edition nodes (or some other alternative type entries)
+each with track entries underneath, in case the source file has extracted
+a track listing from different sources).
+
 
 2. TOC scope: global and current
 
diff --git a/docs/faq/Makefile.in b/docs/faq/Makefile.in
index ee19023..d1fff89 100644
--- a/docs/faq/Makefile.in
+++ b/docs/faq/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +37,51 @@
 # install directory trees :(
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -74,9 +101,10 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/../htmlinstall.mak $(srcdir)/../manuals.mak \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(srcdir)/../manuals.mak \
+	$(top_srcdir)/common/upload-doc.mak \
+	$(srcdir)/../htmlinstall.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/faq
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -84,7 +112,6 @@
 	$(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 \
@@ -108,24 +135,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -162,6 +197,7 @@
   }
 am__installdirs = "$(DESTDIR)$(faqdir)"
 DATA = $(faq_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -261,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -279,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -291,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -353,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -582,11 +614,11 @@
 	@list='$(faq_DATA)'; test -n "$(faqdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(faqdir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -720,17 +752,18 @@
 .MAKE: check-am install-am install-strip
 
 .PHONY: all all-am all-local check check-am check-local clean \
-	clean-generic clean-libtool clean-local distclean \
-	distclean-generic distclean-libtool distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-data-local install-dvi install-dvi-am \
-	install-exec install-exec-am install-faqDATA install-html \
-	install-html-am install-info install-info-am 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-faqDATA uninstall-local
+	clean-generic clean-libtool clean-local cscopelist-am ctags-am \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-dvi \
+	install-dvi-am install-exec install-exec-am install-faqDATA \
+	install-html install-html-am install-info install-info-am \
+	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-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-faqDATA \
+	uninstall-local
 
 
 ### generate all documentation by default
@@ -770,20 +803,12 @@
 	cp ../version.entities $(BUILDDIR) ; \
 	cp $(top_srcdir)/docs/url.entities $(BUILDDIR)
 
-# we should switch to xsltproc
-# docbook2html aka jade can't add the encoding easily to the html meta
-# (but we are lazy and just abuse sed to add it)
-# jw -f docbook -b html -d pwg.dsl -o ../html -V '%use-id-as-filename%' $(MAIN)
-# this is a starting point
-# xsltproc --nonet /usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl pwg.xml
-# 
 html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
 	@$(MAKE) check-local
 	@echo "*** Generating HTML output ***"
 	@-mkdir -p html
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	@cd $(BUILDDIR) && SP_ENCODING="UTF-8" docbook2html -o ../html -V '%use-id-as-filename%' $(MAIN)
-	@$(SED) -i -e 's/\(^CONTENT.*\)\(.>\)/\1;charset=UTF-8\2/' html/*html
+	@cd $(BUILDDIR) && $(XSLTPROC) -o ../html/ --stringparam chunker.output.encoding UTF-8 --stringparam  use.id.as.filename 1 $(XSLTPROC_FLAGS) "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" $(MAIN)
 	@test "x$(CSS)" != "x" && \
           echo "Copying .css files: $(CSS)" && \
           cp $(srcdir)/$(CSS) html
@@ -857,7 +882,20 @@
 # make sure xml validates properly
 check-local: $(BUILDDIR)/$(MAIN)
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && \
+	if [ `which curl` ]; then \
+    links=`$(XSLTPROC) $(XSLTPROC_FLAGS) --xinclude $(abs_top_srcdir)/docs/list-ulink.xsl $(MAIN) | egrep '^http' | sort | uniq` && \
+    have_error=0 && \
+    for link in $$links; do \
+      code=`curl -s -m20 -o /dev/null -I -w "%{http_code}" $$link`; \
+      if [ \( $$? -ne 0 \) -o \( $$code -gt 399 \) ]; then \
+        echo "exit_status=$$?, http_code=$$code: $$link"; \
+        grep -Hnr "$$link" .; \
+        have_error=1; \
+      fi; \
+    done \
+  fi
 
 # avoid 'cp: cannot create regular file `build/image.entities': File exists'
 # errors during 'make distcheck' by disabling parallel builds
diff --git a/docs/faq/dependencies.xml b/docs/faq/dependencies.xml
index 9a85ac6..92e091c 100644
--- a/docs/faq/dependencies.xml
+++ b/docs/faq/dependencies.xml
@@ -54,9 +54,9 @@
       <answer>
         <para>
 GStreamer actively supports such efforts, and in the case of 
-<ulink url="http://ladspa.org/"><citetitle>LADSPA</citetitle></ulink>,
-we already have a wrapper plugin.  This wrapper plug-in detects the LADSPA
-plugins present on your system at register time.
+<ulink url="http://www.ladspa.org/"><citetitle>LADSPA</citetitle></ulink>,
+we already have a wrapper plugin. This wrapper plug-in detects the LADSPA
+plugins present on your system at run time.
         </para>
       </answer>
     </qandaentry>
diff --git a/docs/faq/developing.xml b/docs/faq/developing.xml
index b145989..8472b96 100644
--- a/docs/faq/developing.xml
+++ b/docs/faq/developing.xml
@@ -192,8 +192,11 @@
 (however, please use spaces for indenting, not tabs, even in header files).
         </para>
         <para>
+<!-- TODO(ensonic): link is dead, pending question on desktop-devel
 As for the code itself, the 
-<ulink url="http://developer.gnome.org/doc/guides/programming-guidelines/book1.html">GNOME coding guidelines</ulink> is a good read.
+<ulink url="http://developer.gnome.org/doc/guides/programming-guidelines/book1.html">GNOME
+coding guidelines</ulink> is a good read.
+-->
 Where possible, we try to adhere to the spirit of GObject and use similar
 coding idioms.
         </para>
diff --git a/docs/gst/Makefile.am b/docs/gst/Makefile.am
index 3202ef3..c0dedc6 100644
--- a/docs/gst/Makefile.am
+++ b/docs/gst/Makefile.am
@@ -78,7 +78,7 @@
 GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
 
 GTKDOC_EXTRA_ENVIRONMENT= \
-    GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
+    GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
 
 # If you need to override some of the declarations, place them in this file
 # and uncomment this line.
diff --git a/docs/gst/Makefile.in b/docs/gst/Makefile.in
index d958cfb..11f4bb5 100644
--- a/docs/gst/Makefile.in
+++ b/docs/gst/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +33,51 @@
 ###########################################################################
 # thomas: except of course that we did
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,9 +97,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/gstreamer.types.in $(top_srcdir)/common/gtk-doc.mak \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
+	$(top_srcdir)/common/gtk-doc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(srcdir)/gstreamer.types.in
 subdir = docs/gst
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -80,7 +107,6 @@
 	$(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 \
@@ -104,24 +130,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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 = gstreamer.types
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -129,6 +163,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -230,15 +265,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -248,11 +279,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -260,6 +289,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -322,6 +352,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -486,7 +517,7 @@
 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
 GTKDOC_EXTRA_ENVIRONMENT = \
-    GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
+    GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
 
 
 # If you need to override some of the declarations, place them in this file
@@ -580,11 +611,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -726,18 +757,18 @@
 .MAKE: all check install install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local 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-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic \
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	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-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
 	maintainer-clean-local mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-	uninstall-local
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-local
 
 html: html-build.stamp
 
@@ -824,9 +855,9 @@
 @ENABLE_GTK_DOC_TRUE@		--ignore-headers="$(IGNORE_HFILES)"
 @ENABLE_GTK_DOC_TRUE@	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then	\
 @ENABLE_GTK_DOC_TRUE@	    echo "  DOC   Introspecting gobjects"; \
-@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`		\
-@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_PATH=						\
-@ENABLE_GTK_DOC_TRUE@	    GST_REGISTRY=doc-registry.xml				\
+@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
+@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_PATH_1_0=						\
+@ENABLE_GTK_DOC_TRUE@	    GST_REGISTRY_1_0=doc-registry.xml				\
 @ENABLE_GTK_DOC_TRUE@	    $(GTKDOC_EXTRA_ENVIRONMENT)					\
 @ENABLE_GTK_DOC_TRUE@	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"				\
 @ENABLE_GTK_DOC_TRUE@	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
@@ -873,10 +904,7 @@
 @ENABLE_GTK_DOC_TRUE@	if test "$(?)" = "0"; then \
 @ENABLE_GTK_DOC_TRUE@	  mkhtml_options=--path="$(abs_srcdir)"; \
 @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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f version.entities
 @ENABLE_GTK_DOC_TRUE@	@test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
@@ -930,9 +958,9 @@
 	    echo '-- Installing '$$i ; \
 	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	  done; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(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 69db751..16820d4 100644
--- a/docs/gst/gst-universe.svg
+++ b/docs/gst/gst-universe.svg
@@ -4,15 +4,15 @@
 <!-- Generated by graphviz version 2.26.3 (20100126.1600)
  -->
 <!-- Title: pipeline Pages: 1 -->
-<svg width="690pt" height="632pt"
- viewBox="0.00 0.00 690.00 632.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<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,-628 687,-628 687,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="565,-624 501,-624 501,-588 565,-588 565,-624"/>
-<text text-anchor="middle" x="533" y="-603.4" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
+<polygon fill="#ffdddd" stroke="black" points="579,-624 511,-624 511,-588 579,-588 579,-624"/>
+<text text-anchor="middle" x="545" y="-603.4" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
 </g>
 <!-- bus -->
 <g id="node3" class="node"><title>bus</title>
@@ -23,74 +23,74 @@
 </g>
 <!-- application&#45;&gt;bus -->
 <g id="edge48" class="edge"><title>application&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M500.953,-602.984C422.76,-595.249 224.265,-573.238 165,-544 133.414,-528.417 124.897,-520.334 107,-490 104.099,-485.083 101.959,-479.423 100.382,-473.833"/>
-<polygon fill="black" stroke="black" points="103.776,-472.977 98.1069,-464.027 96.957,-474.559 103.776,-472.977"/>
+<path fill="none" stroke="black" d="M510.91,-603.038C429.314,-595.538 225.03,-574.226 164,-544 132.728,-528.512 124.602,-520.132 107,-490 104.121,-485.071 101.99,-479.405 100.415,-473.814"/>
+<polygon fill="black" stroke="black" points="103.809,-472.958 98.1375,-464.009 96.9903,-474.541 103.809,-472.958"/>
 <text text-anchor="middle" x="180" 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="583,-304 529,-304 529,-268 583,-268 583,-304"/>
-<text text-anchor="middle" x="556" y="-283.4" 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="M565.013,-590.366C587.654,-576.819 614,-554.857 614,-526 614,-526 614,-526 614,-366 614,-345.478 611.529,-338.977 600,-322 597.3,-318.025 594.036,-314.259 590.52,-310.768"/>
-<polygon fill="black" stroke="black" points="592.811,-308.121 583.047,-304.006 588.114,-313.311 592.811,-308.121"/>
-<text text-anchor="middle" x="622" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M579.083,-590.495C602.731,-577.147 630,-555.384 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="258,-544 204,-544 204,-508 258,-508 258,-544"/>
-<text text-anchor="middle" x="231" y="-523.4" font-family="Bitstream Vera Sans" font-size="9.00">pipeline</text>
+<polygon fill="#ccccff" stroke="black" points="259,-544 205,-544 205,-508 259,-508 259,-544"/>
+<text text-anchor="middle" x="232" 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="M500.967,-597.514C444.57,-582.575 327.88,-551.664 268.087,-535.824"/>
-<polygon fill="black" stroke="black" points="268.866,-532.41 258.303,-533.233 267.074,-539.177 268.866,-532.41"/>
-<text text-anchor="middle" x="398" y="-563.7" font-family="Bitstream Vera Sans" font-size="7.00">has</text>
+<path fill="none" stroke="black" d="M510.908,-597.286C451.745,-582.165 330.534,-551.184 269.244,-535.519"/>
+<polygon fill="black" stroke="black" points="269.788,-532.046 259.232,-532.96 268.054,-538.828 269.788,-532.046"/>
+<text text-anchor="middle" x="404.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="674,-304 620,-304 620,-268 674,-268 674,-304"/>
-<text text-anchor="middle" x="647" y="-283.4" 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="M565.196,-601.066C604.557,-592.994 666,-572.885 666,-526 666,-526 666,-526 666,-366 666,-348.37 661.578,-329.132 657.001,-313.94"/>
-<polygon fill="black" stroke="black" points="660.245,-312.593 653.859,-304.139 653.579,-314.73 660.245,-312.593"/>
-<text text-anchor="middle" x="674" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M579.003,-601.481C620.154,-593.882 684,-574.308 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="343,-464 289,-464 289,-428 343,-428 343,-464"/>
-<text text-anchor="middle" x="316" y="-443.4" 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="378,-384 324,-384 324,-348 378,-348 378,-384"/>
-<text text-anchor="middle" x="351" y="-363.4" 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="M313.527,-427.842C313.13,-419.664 313.69,-410.057 317,-402 318.423,-398.536 320.346,-395.208 322.558,-392.071"/>
-<polygon fill="black" stroke="black" points="325.331,-394.209 328.943,-384.248 319.908,-389.783 325.331,-394.209"/>
-<text text-anchor="middle" x="323" y="-403.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="M323.942,-427.847C328.372,-417.721 333.981,-404.9 338.942,-393.56"/>
-<polygon fill="black" stroke="black" points="342.288,-394.646 343.089,-384.081 335.875,-391.84 342.288,-394.646"/>
-<text text-anchor="middle" x="344.5" y="-403.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>
@@ -103,40 +103,40 @@
 <g id="edge38" class="edge"><title>bus&#45;&gt;message</title>
 <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="111.5" y="-363.7" font-family="Bitstream Vera Sans" font-size="7.00">receive</text>
+<text text-anchor="middle" x="112.5" 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="519,-250 465,-250 465,-214 519,-214 519,-250"/>
-<text text-anchor="middle" x="492" y="-229.4" 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="471,-116 417,-116 417,-80 471,-80 471,-116"/>
-<text text-anchor="middle" x="444" y="-95.4" 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="M485.933,-213.867C479.281,-194.142 468.194,-161.719 458,-134 457.002,-131.286 455.943,-128.464 454.871,-125.649"/>
-<polygon fill="black" stroke="black" points="458.116,-124.336 451.253,-116.264 451.585,-126.854 458.116,-124.336"/>
-<text text-anchor="middle" x="489.5" y="-175.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="472,-36 416,-36 416,-1.77636e-14 472,-3.55271e-15 472,-36"/>
-<text text-anchor="middle" x="444" y="-15.4" font-family="Bitstream Vera Sans" font-size="9.00">structure</text>
+<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.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="M444,-79.8468C444,-69.9251 444,-57.4167 444,-46.2492"/>
-<polygon fill="black" stroke="black" points="447.5,-46.0814 444,-36.0814 440.5,-46.0814 447.5,-46.0814"/>
-<text text-anchor="middle" x="453.5" y="-55.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>
@@ -147,121 +147,121 @@
 </g>
 <!-- element&#45;&gt;buffer -->
 <g id="edge34" class="edge"><title>element&#45;&gt;buffer</title>
-<path fill="none" stroke="black" d="M378.04,-349.629C401.516,-335.12 433.366,-314.634 444,-304 457.158,-290.842 468.821,-273.56 477.354,-259.227"/>
-<polygon fill="black" stroke="black" points="480.535,-260.718 482.495,-250.306 474.469,-257.223 480.535,-260.718"/>
-<text text-anchor="middle" x="445" y="-323.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="M323.717,-360.559C299.105,-354.991 262.369,-345.013 233,-330 222.66,-324.715 212.272,-317.556 203.201,-310.549"/>
-<polygon fill="black" stroke="black" points="205.277,-307.727 195.281,-304.215 200.905,-313.194 205.277,-307.727"/>
-<text text-anchor="middle" x="254.5" y="-323.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="308,-304 220,-304 220,-268 308,-268 308,-304"/>
-<text text-anchor="middle" x="264" y="-283.4" 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="M323.703,-355.792C310.694,-349.847 295.682,-341.275 285,-330 280.492,-325.242 276.79,-319.336 273.818,-313.413"/>
-<polygon fill="black" stroke="black" points="277.005,-311.964 269.74,-304.252 270.61,-314.811 277.005,-311.964"/>
+<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="M378.154,-360.153C404.093,-354.126 444.008,-343.686 477,-330 491.61,-323.939 506.956,-315.834 520.196,-308.232"/>
-<polygon fill="black" stroke="black" points="522.131,-311.155 528.991,-303.081 518.593,-305.115 522.131,-311.155"/>
-<text text-anchor="middle" x="518" y="-323.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="M323.809,-360.853C293.474,-354.794 243.124,-343.787 201,-330 175.264,-321.577 167.665,-317.068 139.754,-304.32"/>
-<polygon fill="black" stroke="black" points="140.951,-301.02 130.398,-300.086 138.065,-307.398 140.951,-301.02"/>
-<text text-anchor="middle" x="209" y="-323.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="435,-304 381,-304 381,-268 435,-268 435,-304"/>
-<text text-anchor="middle" x="408" y="-283.4" 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="M363.934,-347.847C371.368,-337.414 380.839,-324.12 389.095,-312.534"/>
-<polygon fill="black" stroke="black" points="392.165,-314.257 395.117,-304.081 386.464,-310.195 392.165,-314.257"/>
-<text text-anchor="middle" x="391.5" y="-323.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="408,-196 332,-196 332,-160 408,-160 408,-196"/>
-<text text-anchor="middle" x="370" y="-175.4" 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="M350.472,-347.882C350.106,-328.171 350.115,-295.759 353,-268 355.164,-247.175 359.599,-223.963 363.397,-206.328"/>
-<polygon fill="black" stroke="black" points="366.908,-206.661 365.653,-196.141 360.074,-205.147 366.908,-206.661"/>
-<text text-anchor="middle" x="362.5" y="-283.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="M378.104,-363.047C416.37,-358.426 488.133,-348.086 547,-330 568.715,-323.329 591.998,-313.269 610.631,-304.452"/>
-<polygon fill="black" stroke="black" points="612.154,-307.603 619.646,-300.112 609.117,-301.296 612.154,-307.603"/>
-<text text-anchor="middle" x="583.5" y="-323.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="160,-196 82,-196 82,-160 160,-160 160,-196"/>
-<text text-anchor="middle" x="121" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">plugin feature</text>
+<polygon fill="#eeeeee" stroke="black" points="211,-196 129,-196 129,-160 211,-160 211,-196"/>
+<text text-anchor="middle" x="170" 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="M240.065,-267.923C216.246,-249.934 179.538,-222.21 153.178,-202.302"/>
-<polygon fill="black" stroke="black" points="155.102,-199.37 145.013,-196.136 150.884,-204.955 155.102,-199.37"/>
-<text text-anchor="middle" x="220" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M248.885,-267.679C233.438,-250.119 209.976,-223.446 192.652,-203.751"/>
+<polygon fill="black" stroke="black" points="195.11,-201.247 185.877,-196.05 189.854,-205.87 195.11,-201.247"/>
+<text text-anchor="middle" x="238.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="M421.367,-267.742C424.738,-262.284 427.971,-256.118 430,-250 443.729,-208.599 445.591,-157.601 445.171,-126.462"/>
-<polygon fill="black" stroke="black" points="448.667,-126.243 444.943,-116.324 441.669,-126.4 448.667,-126.243"/>
-<text text-anchor="middle" x="454.5" y="-175.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="M389.51,-267.974C385.027,-262.612 380.742,-256.437 378,-250 372.205,-236.396 370.046,-220.101 369.404,-206.457"/>
-<polygon fill="black" stroke="black" points="372.898,-206.104 369.175,-196.184 365.899,-206.26 372.898,-206.104"/>
-<text text-anchor="middle" x="404" y="-229.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="M386.792,-159.847C396.726,-149.107 409.464,-135.336 420.398,-123.516"/>
-<polygon fill="black" stroke="black" points="423.054,-125.799 427.275,-116.081 417.915,-121.046 423.054,-125.799"/>
-<text text-anchor="middle" x="419.5" y="-135.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="M250.288,-507.847C261.808,-497.005 276.61,-483.073 289.248,-471.179"/>
-<polygon fill="black" stroke="black" points="291.905,-473.484 296.789,-464.081 287.108,-468.386 291.905,-473.484"/>
-<text text-anchor="middle" x="283" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M251.288,-507.847C262.808,-497.005 277.61,-483.073 290.248,-471.179"/>
+<polygon fill="black" stroke="black" points="292.905,-473.484 297.789,-464.081 288.108,-468.386 292.905,-473.484"/>
+<text text-anchor="middle" x="284.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="M203.915,-523.371C179.027,-519.683 142.405,-510.883 118,-490 112.89,-485.627 108.842,-479.781 105.686,-473.782"/>
-<polygon fill="black" stroke="black" points="108.756,-472.078 101.437,-464.418 102.382,-474.971 108.756,-472.078"/>
-<text text-anchor="middle" x="127.5" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
+<path fill="none" stroke="black" d="M204.839,-523.668C179.445,-520.185 141.813,-511.52 117,-490 111.964,-485.633 108.04,-479.789 105.019,-473.79"/>
+<polygon fill="black" stroke="black" points="108.156,-472.226 100.986,-464.425 101.727,-474.994 108.156,-472.226"/>
+<text text-anchor="middle" x="127" 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="M224.284,-507.959C211.946,-473.807 186.016,-397.114 176,-330 175.25,-324.974 174.822,-319.591 174.6,-314.374"/>
-<polygon fill="black" stroke="black" points="178.093,-313.998 174.394,-304.069 171.094,-314.137 178.093,-313.998"/>
-<text text-anchor="middle" x="203.5" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
+<path fill="none" stroke="black" d="M224.413,-507.779C210.656,-473.639 182.085,-397.398 172,-330 171.247,-324.964 171.087,-319.576 171.264,-314.358"/>
+<polygon fill="black" stroke="black" points="174.778,-314.281 172.016,-304.053 167.797,-313.772 174.778,-314.281"/>
+<text text-anchor="middle" x="200" 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>
@@ -272,9 +272,9 @@
 </g>
 <!-- plugin&#45;&gt;plugin_feature -->
 <g id="edge42" class="edge"><title>plugin&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M42.9458,-267.679C58.2302,-250.119 81.4452,-223.446 98.5869,-203.751"/>
-<polygon fill="black" stroke="black" points="101.364,-205.891 105.29,-196.05 96.0843,-201.295 101.364,-205.891"/>
-<text text-anchor="middle" x="97.5" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M50.935,-267.923C74.7541,-249.934 111.462,-222.21 137.822,-202.302"/>
+<polygon fill="black" stroke="black" points="140.116,-204.955 145.987,-196.136 135.898,-199.37 140.116,-204.955"/>
+<text text-anchor="middle" x="130" 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>
@@ -287,7 +287,7 @@
 <g id="edge40" class="edge"><title>registry&#45;&gt;plugin</title>
 <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="36.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<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 d4388c2..eac3acb 100644
--- a/docs/gst/gstreamer-docs.sgml
+++ b/docs/gst/gstreamer-docs.sgml
@@ -65,10 +65,12 @@
     <xi:include href="xml/gstbufferpool.xml" />
     <xi:include href="xml/gstbus.xml" />
     <xi:include href="xml/gstcaps.xml" />
+    <xi:include href="xml/gstcapsfeatures.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/gstcontext.xml" />
     <xi:include href="xml/gstcontrolbinding.xml" />
     <xi:include href="xml/gstcontrolsource.xml" />
     <xi:include href="xml/gstdatetime.xml" />
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index fe21ddd..49c31cf 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -91,6 +91,8 @@
 <SUBSECTION>
 GstBinFlags
 
+GST_BIN_IS_NO_RESYNC
+
 GST_BIN_CHILDREN
 GST_BIN_CHILDREN_COOKIE
 GST_BIN_NUMCHILDREN
@@ -221,6 +223,7 @@
 
 gst_buffer_memcmp
 gst_buffer_extract
+gst_buffer_extract_dup
 gst_buffer_fill
 gst_buffer_memset
 
@@ -400,11 +403,15 @@
 gst_caps_append
 gst_caps_merge
 gst_caps_append_structure
+gst_caps_append_structure_full
 gst_caps_remove_structure
 gst_caps_steal_structure
 gst_caps_merge_structure
+gst_caps_merge_structure_full
 gst_caps_get_size
 gst_caps_get_structure
+gst_caps_get_features
+gst_caps_set_features
 gst_caps_set_value
 gst_caps_set_simple
 gst_caps_set_simple_valist
@@ -417,6 +424,7 @@
 gst_caps_is_always_compatible
 gst_caps_is_subset
 gst_caps_is_subset_structure
+gst_caps_is_subset_structure_full
 gst_caps_can_intersect
 gst_caps_intersect
 gst_caps_intersect_full
@@ -446,6 +454,50 @@
 </SECTION>
 
 <SECTION>
+<FILE>gstcapsfeatures</FILE>
+<TITLE>GstCapsFeatures</TITLE>
+GstCapsFeatures
+gst_caps_features_new
+gst_caps_features_new_empty
+gst_caps_features_new_any
+gst_caps_features_new_id
+gst_caps_features_new_id_valist
+gst_caps_features_new_valist
+
+gst_caps_features_copy
+gst_caps_features_free
+
+gst_caps_features_from_string
+gst_caps_features_to_string
+
+gst_caps_features_set_parent_refcount
+
+gst_caps_features_is_equal
+gst_caps_features_is_any
+
+gst_caps_features_contains
+gst_caps_features_contains_id
+
+gst_caps_features_get_size
+
+gst_caps_features_get_nth
+gst_caps_features_get_nth_id
+
+gst_caps_features_add
+gst_caps_features_add_id
+gst_caps_features_remove
+gst_caps_features_remove_id
+<SUBSECTION Standard>
+GST_CAPS_FEATURES
+GST_CAPS_FEATURES_CAST
+GST_IS_CAPS_FEATURES
+GST_TYPE_CAPS_FEATURES
+gst_is_caps_features
+<SUBSECTION Private>
+gst_caps_features_get_type
+</SECTION>
+
+<SECTION>
 <FILE>gstsample</FILE>
 <TITLE>GstSample</TITLE>
 GstSample
@@ -590,6 +642,9 @@
 gst_buffer_new_and_alloc
 GST_BUFFER_TIMESTAMP
 GST_BUFFER_TIMESTAMP_IS_VALID
+GST_MESSAGE_DURATION
+gst_message_new_duration
+gst_message_parse_duration
 gst_adapter_prev_timestamp
 <SUBSECTION Private>
 </SECTION>
@@ -612,9 +667,29 @@
 GST_PADDING
 GST_PADDING_LARGE
 GST_PADDING_INIT
-GST_USING_PRINTF_EXTENSION
 </SECTION>
 
+<SECTION>
+<FILE>gstcontext</FILE>
+<TITLE>GstContext</TITLE>
+GstContext
+gst_context_new
+gst_context_ref
+gst_context_unref
+gst_context_copy
+gst_context_get_structure
+gst_context_writable_structure
+gst_context_make_writable
+gst_context_is_writable
+gst_context_replace
+<SUBSECTION Standard>
+GST_CONTEXT
+GST_CONTEXT_CAST
+GST_IS_CONTEXT
+GST_TYPE_CONTEXT
+<SUBSECTION Private>
+gst_context_get_type
+</SECTION>
 
 <SECTION>
 <FILE>gstcontrolbinding</FILE>
@@ -747,6 +822,8 @@
 gst_element_get_start_time
 gst_element_set_bus
 gst_element_get_bus
+gst_element_set_context
+gst_element_get_context
 gst_element_get_factory
 gst_element_set_name
 gst_element_get_name
@@ -975,6 +1052,8 @@
 
 gst_event_new_stream_start
 gst_event_parse_stream_start
+gst_event_set_stream_flags
+gst_event_parse_stream_flags
 
 gst_event_new_segment
 gst_event_parse_segment
@@ -1019,6 +1098,9 @@
 
 gst_event_new_segment_done
 gst_event_parse_segment_done
+
+gst_event_new_context
+gst_event_parse_context
 <SUBSECTION Standard>
 GstEventClass
 GST_EVENT
@@ -1144,6 +1226,7 @@
 gst_debug_set_colored
 gst_debug_is_colored
 gst_debug_set_default_threshold
+gst_debug_set_threshold_from_string
 gst_debug_get_default_threshold
 gst_debug_set_threshold_for_name
 gst_debug_unset_threshold_for_name
@@ -1320,6 +1403,8 @@
 GST_MEMORY_IS_NO_SHARE
 GST_MEMORY_IS_ZERO_PADDED
 GST_MEMORY_IS_ZERO_PREFIXED
+GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS
+GST_MEMORY_IS_NOT_MAPPABLE
 
 GstMemory
 
@@ -1337,6 +1422,8 @@
 
 gst_memory_init
 
+gst_memory_is_type
+
 gst_memory_ref
 gst_memory_unref
 
@@ -1346,6 +1433,7 @@
 gst_memory_lock
 gst_memory_unlock
 gst_memory_is_writable
+gst_memory_make_writable
 
 gst_memory_make_mapped
 gst_memory_map
@@ -1457,6 +1545,13 @@
 gst_message_new_progress
 gst_message_parse_progress
 
+gst_message_new_need_context
+gst_message_add_context_type
+gst_message_get_n_context_types
+gst_message_parse_nth_context_type
+gst_message_new_have_context
+gst_message_parse_have_context
+
 <SUBSECTION Standard>
 GstMessageClass
 GST_MESSAGE
@@ -1771,6 +1866,8 @@
 gst_pad_create_stream_id_printf
 gst_pad_create_stream_id_printf_valist
 
+gst_pad_get_stream_id
+
 GstPadForwardFunction
 gst_pad_forward
 <SUBSECTION Core>
@@ -2076,6 +2173,7 @@
 gst_plugin_feature_get_rank
 gst_plugin_feature_get_name
 gst_plugin_feature_get_plugin
+gst_plugin_feature_get_plugin_name
 gst_plugin_feature_load
 gst_plugin_feature_list_copy
 gst_plugin_feature_list_free
@@ -2246,11 +2344,13 @@
 gst_query_get_n_allocation_pools
 gst_query_parse_nth_allocation_pool
 gst_query_set_nth_allocation_pool
+gst_query_remove_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_remove_nth_allocation_param
 
 gst_query_add_allocation_meta
 gst_query_get_n_allocation_metas
@@ -2269,6 +2369,13 @@
 gst_query_has_scheduling_mode_with_flags
 
 gst_query_new_drain
+
+gst_query_new_context
+gst_query_set_context
+gst_query_parse_context
+gst_query_add_context_type
+gst_query_get_n_context_types
+gst_query_parse_nth_context_type
 <SUBSECTION Standard>
 GstQueryClass
 GST_QUERY
@@ -2367,6 +2474,7 @@
 gst_structure_new
 gst_structure_new_valist
 gst_structure_new_id
+gst_structure_new_from_string
 gst_structure_copy
 gst_structure_free
 gst_structure_get_name
@@ -3079,6 +3187,11 @@
 gst_value_set_caps
 gst_value_get_caps
 
+<SUBSECTION capsfeature>
+GST_VALUE_HOLDS_CAPS_FEATURES
+gst_value_set_caps_features
+gst_value_get_caps_features
+
 <SUBSECTION structure>
 GST_VALUE_HOLDS_STRUCTURE
 gst_value_set_structure
diff --git a/docs/gst/html/GstAllocator.html b/docs/gst/html/GstAllocator.html
index d6df169..8a5707a 100644
--- a/docs/gst/html/GstAllocator.html
+++ b/docs/gst/html/GstAllocator.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstAllocator</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -105,8 +105,11 @@
 <p>
 The <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> is used to create new memory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody></tbody>
 </table></div>
 </div>
@@ -122,8 +125,11 @@
 <p>
 Flags for allocators.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-ALLOCATOR-FLAG-CUSTOM-ALLOC:CAPS"></a><span class="term"><code class="literal">GST_ALLOCATOR_FLAG_CUSTOM_ALLOC</code></span></p></td>
@@ -151,8 +157,11 @@
 <p>
 Parameters to control the allocation of memory
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -190,8 +199,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -216,8 +228,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -239,8 +254,11 @@
 <p>
 Set the default allocator. This function takes ownership of <em class="parameter"><code>allocator</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
 <td>a <a class="link" href="GstAllocator.html" 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>
@@ -255,8 +273,11 @@
 <p>
 Initialize <em class="parameter"><code>params</code></em> to its default values
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
 <td>a <a class="link" href="GstAllocator.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>
@@ -274,8 +295,11 @@
 <p>
 Free-function: gst_allocation_params_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
@@ -298,8 +322,11 @@
 <p>
 Free <em class="parameter"><code>params</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
 <td>a <a class="link" href="GstAllocator.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>
@@ -334,8 +361,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
@@ -367,8 +397,11 @@
 <p>
 Free <em class="parameter"><code>memory</code></em> that was previously allocated with <a class="link" href="GstAllocator.html#gst-allocator-alloc" title="gst_allocator_alloc ()"><code class="function">gst_allocator_alloc()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
@@ -400,8 +433,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index a851241..63b85fd 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -80,6 +80,7 @@
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);
 
 enum                <a class="link" href="GstBin.html#GstBinFlags" title="enum GstBinFlags">GstBinFlags</a>;
+#define             <a class="link" href="GstBin.html#GST-BIN-IS-NO-RESYNC:CAPS" title="GST_BIN_IS_NO_RESYNC()">GST_BIN_IS_NO_RESYNC</a>                (bin)
 #define             <a class="link" href="GstBin.html#GST-BIN-CHILDREN:CAPS" title="GST_BIN_CHILDREN()">GST_BIN_CHILDREN</a>                    (bin)
 #define             <a class="link" href="GstBin.html#GST-BIN-CHILDREN-COOKIE:CAPS" title="GST_BIN_CHILDREN_COOKIE()">GST_BIN_CHILDREN_COOKIE</a>             (bin)
 #define             <a class="link" href="GstBin.html#GST-BIN-NUMCHILDREN:CAPS" title="GST_BIN_NUMCHILDREN()">GST_BIN_NUMCHILDREN</a>                 (bin)
@@ -157,13 +158,16 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9877728"></a><h3>Notes</h3>
+<a name="idp9153312"></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:
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">GST_MESSAGE_EOS</span></p></td>
@@ -229,8 +233,11 @@
 A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> implements the following default behaviour for answering to a
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>:
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">GST_QUERY_DURATION</span></p></td>
@@ -299,8 +306,11 @@
 The GstBin base class. Subclasses can access these fields provided
 the LOCK is taken.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstBin-struct.numchildren"></a>numchildren</code></em>;</span></p></td>
@@ -370,8 +380,11 @@
 message handling.  <em class="parameter"><code>handle_message</code></em> takes ownership of the message, just like
 <a class="link" href="GstElement.html#gst-element-post-message" title="gst_element_post_message ()"><span class="type">gst_element_post_message</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBinClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -399,8 +412,11 @@
 <p>
 Creates a new bin with the given name.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -442,8 +458,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -483,8 +502,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -519,8 +541,11 @@
 <p>
 MT safe.  Caller owns returned reference.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -551,14 +576,17 @@
 <p>
 Returns NULL if:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>no element with the given name is found in the bin</p></li></ul></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>no element with the given name is found in the bin</p></li></ul></div>
 <p>
 </p>
 <p>
 MT safe.  Caller owns returned reference.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -592,8 +620,11 @@
 <p>
 MT safe.  Caller owns returned reference.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -622,8 +653,11 @@
 <p>
 MT safe.  Caller owns returned value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -649,8 +683,11 @@
 <p>
 MT safe.  Caller owns returned value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -676,8 +713,11 @@
 <p>
 MT safe.  Caller owns returned value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -708,8 +748,11 @@
 <p>
 MT safe.  Caller owns returned value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -735,8 +778,11 @@
 <p>
 MT safe.  Caller owns returned value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -765,8 +811,11 @@
 <p>
 MT safe.  Caller owns returned value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -802,8 +851,11 @@
 This function simply emits the 'do-latency' signal so any custom latency
 calculations will be performed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -829,8 +881,11 @@
 equivalent to calling <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> for each member of the list. The return
 value of each <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> is ignored.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -860,8 +915,11 @@
 Remove a list of elements from a bin. This function is equivalent
 to calling <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a> with each member of the list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -893,8 +951,11 @@
 owns a reference to it and should use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> on the
 pad when it is not needed any longer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -926,13 +987,16 @@
 internally. They can be checked using the <a class="link" href="GstObject.html#GST-OBJECT-FLAG-IS-SET:CAPS" title="GST_OBJECT_FLAG_IS_SET()"><code class="function">GST_OBJECT_FLAG_IS_SET()</code></a> macro,
 and (un)set using <a class="link" href="GstObject.html#GST-OBJECT-FLAG-SET:CAPS" title="GST_OBJECT_FLAG_SET()"><code class="function">GST_OBJECT_FLAG_SET()</code></a> and <a class="link" href="GstObject.html#GST-OBJECT-FLAG-UNSET:CAPS" title="GST_OBJECT_FLAG_UNSET()"><code class="function">GST_OBJECT_FLAG_UNSET()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-BIN-FLAG-NO-RESYNC:CAPS"></a><span class="term"><code class="literal">GST_BIN_FLAG_NO_RESYNC</code></span></p></td>
 <td>don't resync a state change when elements are
-            added or linked in the bin (Since 1.0.5)
+            added or linked in the bin.
 </td>
 </tr>
 <tr>
@@ -946,14 +1010,39 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-BIN-IS-NO-RESYNC:CAPS"></a><h3>GST_BIN_IS_NO_RESYNC()</h3>
+<pre class="programlisting">#define GST_BIN_IS_NO_RESYNC(bin)        (GST_OBJECT_FLAG_IS_SET(bin,GST_BIN_FLAG_NO_RESYNC))
+</pre>
+<p>
+Check if <em class="parameter"><code>bin</code></em> will resync its state change when elements are added and
+removed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
+<td>A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 1.1.1</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-BIN-CHILDREN:CAPS"></a><h3>GST_BIN_CHILDREN()</h3>
 <pre class="programlisting">#define GST_BIN_CHILDREN(bin)		(GST_BIN_CAST(bin)-&gt;children)
 </pre>
 <p>
 Gets the list with children in a bin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
@@ -969,8 +1058,11 @@
 <p>
 Gets the children cookie that watches the children list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
@@ -986,8 +1078,11 @@
 <p>
 Gets the number of children in a bin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
@@ -1047,8 +1142,11 @@
 sufficient, like when you need different latencies for different sinks in
 the same pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -1071,8 +1169,11 @@
 <p>
 Will be emitted after the element was added to the bin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -1099,8 +1200,11 @@
 <p>
 Will be emitted after the element was removed from the bin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstBus.html b/docs/gst/html/GstBus.html
index 026f2a7..7f7d359 100644
--- a/docs/gst/html/GstBus.html
+++ b/docs/gst/html/GstBus.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBus</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -200,8 +200,11 @@
 <p>
 The standard flags that a bus may have.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-BUS-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_BUS_FLUSHING</code></span></p></td>
@@ -228,8 +231,11 @@
 <p>
 The result values for a GstBusSyncHandler.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-BUS-DROP:CAPS"></a><span class="term"><code class="literal">GST_BUS_DROP</code></span></p></td>
@@ -268,8 +274,11 @@
 Note that this function is used as a GSourceFunc which means that returning
 FALSE will remove the GSource from the mainloop.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -307,8 +316,11 @@
 If the handler returns GST_BUS_DROP, it should unref the message, else the
 message should not be unreffed by the sync handler.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -338,8 +350,11 @@
 <p>
 Creates a new <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> instance. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -356,8 +371,11 @@
 Post a message on the given bus. Ownership of the message
 is taken by the bus.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -384,8 +402,11 @@
 Check if there are pending messages on the bus that
 should be handled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -409,8 +430,11 @@
 on the bus' message queue. A reference is returned, and needs to be unreffed
 by the caller.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -434,8 +458,11 @@
 <p>
 Get a message from the bus.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -463,8 +490,11 @@
 message that does match <em class="parameter"><code>type</code></em>.  If there is no message matching <em class="parameter"><code>type</code></em> on
 the bus, all messages will be discarded.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -499,8 +529,11 @@
 <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>, this function will block forever until a message was
 posted on the bus.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -538,8 +571,11 @@
 <em class="parameter"><code>timeout</code></em> is <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>, this function will block forever until a
 matching message was posted on the bus.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -578,8 +614,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -612,8 +651,11 @@
 You cannot replace an existing sync_handler. You can pass NULL to this
 function, which will clear the existing handler.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -645,8 +687,11 @@
 A helper GstBusSyncHandler that can be used to convert all synchronous
 messages into signals.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -677,8 +722,11 @@
 a message is on the bus. After the GSource is dispatched, the
 message is popped off the bus and unreffed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -723,8 +771,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -776,8 +827,11 @@
 The watch can be removed using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-remove"><code class="function">g_source_remove()</code></a> or by returning FALSE
 from <em class="parameter"><code>func</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -819,8 +873,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> on which you previously called
@@ -856,8 +913,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> on which you want to receive the "sync-message" signal</td>
@@ -874,8 +934,11 @@
 A helper <a class="link" href="GstBus.html#GstBusFunc" title="GstBusFunc ()"><span class="type">GstBusFunc</span></a> that can be used to convert all asynchronous messages
 into signals.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -920,8 +983,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> on which you want to receive the "message" signal</td>
@@ -956,8 +1022,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -980,8 +1049,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
 <td>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> you previously added a signal watch to</td>
@@ -1032,8 +1104,11 @@
 better handled by setting up an asynchronous bus watch and doing things
 from there.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -1082,8 +1157,11 @@
 GSource added to the mainloop. this signal will only be emitted when
 there is a mainloop running.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
@@ -1111,17 +1189,14 @@
 thread that posted the message so one has to be careful with locking.
 </p>
 <p>
-This signal will not be emitted by default, you have to set up
-<a class="link" href="GstBus.html#gst-bus-sync-signal-handler" title="gst_bus_sync_signal_handler ()"><code class="function">gst_bus_sync_signal_handler()</code></a> as a sync handler if you want this
-signal to be emitted when a message is posted on the bus, like this:
+This signal will not be emitted by default, you have to call
+<a class="link" href="GstBus.html#gst-bus-enable-sync-message-emission" title="gst_bus_enable_sync_message_emission ()"><code class="function">gst_bus_enable_sync_message_emission()</code></a> before.
 </p>
-<pre class="programlisting">
-gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
-</pre>
-<p>
-</p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstChildProxy.html b/docs/gst/html/GstChildProxy.html
index 225f090..dc42784 100644
--- a/docs/gst/html/GstChildProxy.html
+++ b/docs/gst/html/GstChildProxy.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstChildProxy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstSample.html" title="GstSample">
@@ -155,8 +155,11 @@
 <p>
 <a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstChildProxyInterface.parent"></a>parent</code></em>;</span></p></td>
@@ -184,8 +187,11 @@
 <p>
 Gets the number of child objects this parent contains.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -212,8 +218,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -241,8 +250,11 @@
 <p>
 Fetches a child by its number.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -275,11 +287,14 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>childproxy</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
 <td>child proxy object to lookup the property in</td>
 </tr>
 <tr>
@@ -317,8 +332,11 @@
 Gets a single property using the GstChildProxy mechanism.
 You are responsible for freeing it by calling <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -345,8 +363,11 @@
 <p>
 Gets properties of the parent object and its children.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -372,8 +393,11 @@
 <p>
 Gets properties of the parent object and its children.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -399,8 +423,11 @@
 <p>
 Sets a single property using the GstChildProxy mechanism.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -426,8 +453,11 @@
 <p>
 Sets properties of the parent object and its children.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -453,8 +483,11 @@
 <p>
 Sets properties of the parent object and its children.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -480,8 +513,11 @@
 <p>
 Emits the "child-added" signal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -507,8 +543,11 @@
 <p>
 Emits the "child-removed" signal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -537,8 +576,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>child_proxy</code></em> :</span></p></td>
@@ -570,8 +612,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>child_proxy</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstClock.html b/docs/gst/html/GstClock.html
index 863417e..8e852d7 100644
--- a/docs/gst/html/GstClock.html
+++ b/docs/gst/html/GstClock.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstClock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -283,8 +283,11 @@
 GStreamer clock class. Override the vmethods to implement the clock
 functionality.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstClockClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -368,8 +371,11 @@
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
 <td>clock time to validate</td>
@@ -436,8 +442,11 @@
 <p>
 Convert a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> to seconds.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
 <td>the time</td>
@@ -452,8 +461,11 @@
 <p>
 Convert a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> to milliseconds (1/1000 of a second).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
 <td>the time</td>
@@ -468,8 +480,11 @@
 <p>
 Convert a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> to microseconds (1/1000000 of a second).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
 <td>the time</td>
@@ -484,8 +499,11 @@
 <p>
 Convert a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> to nanoseconds (1/1000000000 of a second).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
 <td>the time</td>
@@ -501,8 +519,11 @@
 Calculate a difference between two clock times as a <a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a>.
 The difference is calculated as <em class="parameter"><code>e</code></em> - <em class="parameter"><code>s</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
@@ -523,8 +544,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>tv</code></em> :</span></p></td>
 <td>the timeval to convert</td>
@@ -546,8 +570,11 @@
 in your pipeline for 2038.</div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
@@ -568,8 +595,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ts</code></em> :</span></p></td>
 <td>the timespec to convert</td>
@@ -583,8 +613,11 @@
 <p>
 Convert a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> to a struct timespec (see man pselect)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
@@ -610,8 +643,11 @@
 Note that GstClockEntry should be treated as an opaque structure. It must
 not be extended or allocated using a custom allocator.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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="GstClockEntry.refcount"></a>refcount</code></em>;</span></p></td>
 <td>reference counter (read-only)</td>
@@ -628,8 +664,11 @@
 <p>
 The function prototype of the callback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -666,8 +705,11 @@
 <p>
 The type of the clock entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CLOCK-ENTRY-SINGLE:CAPS"></a><span class="term"><code class="literal">GST_CLOCK_ENTRY_SINGLE</code></span></p></td>
@@ -690,8 +732,11 @@
 <p>
 Cast to a clock entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>the entry to cast</td>
@@ -706,8 +751,11 @@
 <p>
 Get the owner clock of the entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>the entry to query</td>
@@ -722,8 +770,11 @@
 <p>
 Get the type of the clock entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>the entry to query</td>
@@ -738,8 +789,11 @@
 <p>
 Get the requested time of this entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>the entry to query</td>
@@ -754,8 +808,11 @@
 <p>
 Get the interval of this periodic entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>the entry to query</td>
@@ -770,8 +827,11 @@
 <p>
 The status of the entry
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>the entry to query</td>
@@ -795,8 +855,11 @@
 <p>
 The return value of a clock operation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CLOCK-OK:CAPS"></a><span class="term"><code class="literal">GST_CLOCK_OK</code></span></p></td>
@@ -858,8 +921,11 @@
 <p>
 The capabilities of this clock
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CLOCK-FLAG-CAN-DO-SINGLE-SYNC:CAPS"></a><span class="term"><code class="literal">GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC</code></span></p></td>
@@ -907,8 +973,11 @@
 <p>
 Gets the <a class="link" href="GstClock.html#GstClockFlags" title="enum GstClockFlags"><span class="type">GstClockFlags</span></a> clock flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
 <td>the clock to query</td>
@@ -935,8 +1004,11 @@
 be used to control the sampling frequency of the master and slave
 clocks.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -985,8 +1057,11 @@
 however keep reporting its time adjusted with the last configured rate 
 and time offsets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1017,8 +1092,11 @@
 Get the master clock that <em class="parameter"><code>clock</code></em> is slaved to or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the clock is
 not slaved to any master clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1047,8 +1125,11 @@
 of a clock can only be changed if the clock has the
 <a class="link" href="GstClock.html#GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS"><span class="type">GST_CLOCK_FLAG_CAN_SET_RESOLUTION</span></a> flag set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1074,8 +1155,11 @@
 Get the accuracy of the clock. The accuracy of the clock is the granularity
 of the values returned by <a class="link" href="GstClock.html#gst-clock-get-time" title="gst_clock_get_time ()"><code class="function">gst_clock_get_time()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1099,8 +1183,11 @@
 monotonically increasing and adjusted according to the current
 offset and rate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1128,8 +1215,11 @@
 <p>
 Free-function: gst_clock_id_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1164,8 +1254,11 @@
 <p>
 Free-function: gst_clock_id_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1199,8 +1292,11 @@
 Reinitializes the provided single shot <em class="parameter"><code>id</code></em> to the provided time. Does not
 modify the reference count.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1236,8 +1332,11 @@
 Reinitializes the provided periodic <em class="parameter"><code>id</code></em> to the provided start time and
 interval. Does not modify the reference count.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1274,8 +1373,11 @@
 Gets the current internal time of the given clock. The time is returned
 unadjusted for the offset and the rate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1304,8 +1406,11 @@
 <p>
 This function is the reverse of <a class="link" href="GstClock.html#gst-clock-unadjust-unlocked" title="gst_clock_unadjust_unlocked ()"><code class="function">gst_clock_unadjust_unlocked()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1336,8 +1441,11 @@
 <p>
 This function is the reverse of <a class="link" href="GstClock.html#gst-clock-adjust-unlocked" title="gst_clock_adjust_unlocked ()"><code class="function">gst_clock_adjust_unlocked()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1373,8 +1481,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1445,8 +1556,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1479,8 +1593,11 @@
 <p>
 Get the amount of time that master and slave clocks are sampled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1503,8 +1620,11 @@
 Set the amount of time, in nanoseconds, to sample master and slave
 clocks
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -1525,8 +1645,11 @@
 <p>
 Get the time of the clock ID
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
@@ -1561,8 +1684,11 @@
 Negative values indicate how much time was spent waiting on the clock 
 before this function returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
@@ -1603,8 +1729,11 @@
 The callback <em class="parameter"><code>func</code></em> can be invoked from any thread, either provided by the
 core or from a streaming thread. The application should be prepared for this.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
@@ -1644,8 +1773,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
 <td>The id to unschedule</td>
@@ -1661,8 +1793,11 @@
 Compares the two <a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> instances. This function can be used
 as a GCompareFunc when sorting ids.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id1</code></em> :</span></p></td>
@@ -1688,8 +1823,11 @@
 <p>
 Increase the refcount of given <em class="parameter"><code>id</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
@@ -1715,8 +1853,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
 <td>The <a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> to unref. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
diff --git a/docs/gst/html/GstControlBinding.html b/docs/gst/html/GstControlBinding.html
index ff2444c..fd388ce 100644
--- a/docs/gst/html/GstControlBinding.html
+++ b/docs/gst/html/GstControlBinding.html
@@ -3,10 +3,10 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="gstreamer-GstContext.html" title="GstContext">
 <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">
@@ -14,7 +14,7 @@
 <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="gstreamer-GstContext.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>
@@ -105,8 +105,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -136,8 +139,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -177,8 +183,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
@@ -213,8 +222,11 @@
 <p>
 Gets the value for the given controlled property at the requested time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
@@ -254,8 +266,11 @@
 <a class="link" href="GstControlBinding.html#gst-control-binding-get-g-value-array" title="gst_control_binding_get_g_value_array ()"><code class="function">gst_control_binding_get_g_value_array()</code></a> returns the array as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValues</span></a> and is
 more suitable for bindings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
@@ -303,8 +318,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
@@ -343,8 +361,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
@@ -365,8 +386,11 @@
 <p>
 Check if the control binding is disabled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstControlSource.html b/docs/gst/html/GstControlSource.html
index f57e0a5..e807ffd 100644
--- a/docs/gst/html/GstControlSource.html
+++ b/docs/gst/html/GstControlSource.html
@@ -3,7 +3,7 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -77,7 +77,7 @@
 <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 <span class="type">GstController</span> to get timestamp-value pairs. A control source
+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. A control source
 essentially is a function over time, returning gloat values between 0.0 and 1.0.
 </p>
 <p>
@@ -110,8 +110,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -134,8 +137,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -151,8 +157,11 @@
 <p>
 Function for returning a value for a given timestamp.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -185,8 +194,11 @@
 <p>
 Function for returning an array of values for starting at a given timestamp.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -227,8 +239,11 @@
 <p>
 Structure for saving a timestamp and a value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -250,8 +265,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -284,8 +302,11 @@
 Gets an array of values for for this <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>. Values that are
 undefined contain NANs.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index cd7c4d4..7b19023 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstElement</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -189,6 +189,9 @@
 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-bus" title="gst_element_set_bus ()">gst_element_set_bus</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="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>);
+<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-context" title="gst_element_set_context ()">gst_element_set_context</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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        <a class="link" href="GstElement.html#gst-element-get-context" title="gst_element_get_context ()">gst_element_get_context</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>);
 #define             <a class="link" href="GstElement.html#gst-element-set-name" title="gst_element_set_name()">gst_element_set_name</a>                (elem,
                                                          name)
@@ -385,13 +388,18 @@
   guint16               numsinkpads;
   GList                *sinkpads;
   guint32               pads_cookie;
+
+  GstContext           *context;
 };
 </pre>
 <p>
 GStreamer element abstract base class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <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>
@@ -481,6 +489,10 @@
 <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>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *<em class="structfield"><code><a name="GstElement-struct.context"></a>context</code></em>;</span></p></td>
+<td></td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -529,14 +541,19 @@
   gboolean              (*query)                (GstElement *element, GstQuery *query);
 
   gboolean              (*post_message)         (GstElement *element, GstMessage *message);
+
+  void                  (*set_context)          (GstElement *element, GstContext *context);
 };
 </pre>
 <p>
 GStreamer element class. Override the vmethods to implement the element
 functionality.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstElementClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -612,6 +629,10 @@
 <td>called when a message is posted on the element. Chain up to
 the parent class' handler to have it posted on the bus.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-context"></a>set_context</code></em> ()</span></p></td>
+<td>set a <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> on the element</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -632,8 +653,11 @@
 <p>
 The standard flags that an element may have.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <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>
@@ -688,8 +712,11 @@
 The possible states an element can be in. States can be changed using
 <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 checked using <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STATE-VOID-PENDING:CAPS"></a><span class="term"><code class="literal">GST_STATE_VOID_PENDING</code></span></p></td>
@@ -739,13 +766,16 @@
 <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> ⇒ <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a> is called an upwards state change
 and <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a> ⇒ <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> a downwards state change.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STATE-CHANGE-NULL-TO-READY:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_NULL_TO_READY</code></span></p></td>
 <td>state change from NULL to READY.
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     The element must check if the resources it needs are available. Device
     sinks and -sources typically try to probe the device to constrain their
@@ -760,7 +790,7 @@
 <tr>
 <td><p><a name="GST-STATE-CHANGE-READY-TO-PAUSED:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_READY_TO_PAUSED</code></span></p></td>
 <td>state change from READY to PAUSED.
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     The element pads are activated in order to receive data in PAUSED.
     Streaming threads are started.
@@ -784,7 +814,7 @@
 <tr>
 <td><p><a name="GST-STATE-CHANGE-PAUSED-TO-PLAYING:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_PAUSED_TO_PLAYING</code></span></p></td>
 <td>state change from PAUSED to PLAYING.
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Most elements ignore this state change.
   </p></li>
@@ -819,7 +849,7 @@
 <tr>
 <td><p><a name="GST-STATE-CHANGE-PLAYING-TO-PAUSED:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_PLAYING_TO_PAUSED</code></span></p></td>
 <td>state change from PLAYING to PAUSED.
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Most elements ignore this state change.
   </p></li>
@@ -850,7 +880,7 @@
 <tr>
 <td><p><a name="GST-STATE-CHANGE-PAUSED-TO-READY:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_PAUSED_TO_READY</code></span></p></td>
 <td>state change from PAUSED to READY.
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Sinks unblock any waits in the preroll.
   </p></li>
@@ -876,7 +906,7 @@
 <tr>
 <td><p><a name="GST-STATE-CHANGE-READY-TO-NULL:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_READY_TO_NULL</code></span></p></td>
 <td>state change from READY to NULL.
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Elements close devices
   </p></li>
@@ -903,8 +933,11 @@
 The possible return values from a state change function such as 
 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>. Only <em class="parameter"><code>GST_STATE_CHANGE_FAILURE</code></em> is a real failure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STATE-CHANGE-FAILURE:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_FAILURE</code></span></p></td>
@@ -939,8 +972,11 @@
 <p>
 This macro returns the current <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return state for.</td>
@@ -956,8 +992,11 @@
 Given a current state <em class="parameter"><code>cur</code></em> and a target state <em class="parameter"><code>pending</code></em>, calculate the next (intermediate)
 <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
@@ -980,8 +1019,11 @@
 <p>
 This macro returns the next <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the next state for.</td>
@@ -996,8 +1038,11 @@
 <p>
 This macro returns the currently pending <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the pending state for.</td>
@@ -1012,8 +1057,11 @@
 <p>
 This macro returns the last <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the last state result for.</td>
@@ -1028,8 +1076,11 @@
 <p>
 This macro returns the target <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the target state for.</td>
@@ -1045,8 +1096,11 @@
 Given a current state <em class="parameter"><code>cur</code></em> and a next state <em class="parameter"><code>next</code></em>, calculate the associated
 <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a> transition.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
@@ -1067,8 +1121,11 @@
 <p>
 Given a state transition <em class="parameter"><code>trans</code></em>, extract the current <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>
@@ -1084,8 +1141,11 @@
 <p>
 Given a state transition <em class="parameter"><code>trans</code></em>, extract the next <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>
@@ -1103,8 +1163,11 @@
 This lock is used by the core.  It is taken while getting or setting
 the state, during state changes, and while finalizing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
@@ -1120,8 +1183,11 @@
 <p>
 Get the conditional used to signal the completion of a state change.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
@@ -1138,8 +1204,11 @@
 Gets the name of this element. Use only in core as this is not
 ABI-compatible. Others use <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()"><code class="function">gst_element_get_name()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
@@ -1154,8 +1223,11 @@
 <p>
 Get the parent object of this element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
@@ -1170,8 +1242,11 @@
 <p>
 Get the message bus of this element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
@@ -1186,8 +1261,11 @@
 <p>
 Get the clock of this element
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
@@ -1202,8 +1280,11 @@
 <p>
 Get the pads of this elements.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
@@ -1219,8 +1300,11 @@
 This macro returns the start_time of the <em class="parameter"><code>elem</code></em>. The start_time is the
 running_time of the pipeline when the element went to PAUSED.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the start time for.</td>
@@ -1236,8 +1320,11 @@
 data processing error. The pipeline will post an error message and the
 application will be requested to stop further media processing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
@@ -1273,8 +1360,11 @@
 data processing problem. The pipeline will post a warning message and the
 application will be informed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
@@ -1311,8 +1401,11 @@
 The pipeline will post a info message and the
 application will be informed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
@@ -1348,8 +1441,11 @@
 Check if the element is in the locked state and therefore will ignore state
 changes from its parent object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
@@ -1428,8 +1524,11 @@
 functions of classes. If a pad template with the same name as an already
 existing one is added the old one is replaced by the new one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
@@ -1457,8 +1556,11 @@
 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> here.</div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element_class</code></em> :</span></p></td>
@@ -1492,8 +1594,11 @@
 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> here.</div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element_class</code></em> :</span></p></td>
@@ -1523,8 +1628,11 @@
 <h3 class="title">Note</h3>This function is for use in _class_init functions only.</div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
@@ -1575,8 +1683,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
@@ -1614,8 +1725,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
@@ -1648,8 +1762,11 @@
 be made resident once loaded, so this function can be used even from
 dynamically loaded plugins.)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
@@ -1686,8 +1803,11 @@
 <p>
 This function will emit the <a class="link" href="GstElement.html#GstElement-pad-added" title='The "pad-added" signal'><span class="type">"pad-added"</span></a> signal on the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1718,8 +1838,11 @@
 This function is only useful during object initialization of
 subclasses of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 create pads for. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
@@ -1743,8 +1866,11 @@
 and if none can be found, it will request a compatible REQUEST pad by looking
 at the templates of <em class="parameter"><code>element</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1780,8 +1906,11 @@
 Retrieves a pad template from <em class="parameter"><code>element</code></em> that is compatible with <em class="parameter"><code>compattempl</code></em>.
 Pads from compatible templates can be linked together.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1817,8 +1946,11 @@
 This method is slow and will be deprecated in the future. New code should
 use <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 the requested template.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1846,8 +1978,11 @@
 Retrieves a pad from <em class="parameter"><code>element</code></em> by name. This version only retrieves
 already-existing (i.e. 'static') pads.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1882,8 +2017,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1931,8 +2069,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1957,8 +2098,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -1998,8 +2142,11 @@
 <p>
 This function will emit the <a class="link" href="GstElement.html#GstElement-pad-removed" title='The "pad-removed" signal'><span class="type">"pad-removed"</span></a> signal on the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2033,8 +2180,11 @@
 The order of pads returned by the iterator will be the order in which
 the pads were added to the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2042,8 +2192,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <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>. Unref each pad
-after use.
+<td>the <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>.
 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -2061,8 +2210,11 @@
 The order of pads returned by the iterator will be the order in which
 the pads were added to the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2070,8 +2222,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <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>. Unref each pad
-after use.
+<td>the <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>.
 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -2089,8 +2240,11 @@
 The order of pads returned by the iterator will be the order in which
 the pads were added to the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2098,8 +2252,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <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>. Unref each pad
-after use.
+<td>the <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>.
 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -2122,8 +2275,11 @@
 Make sure you have added your elements to a bin or pipeline with
 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> before trying to link them.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2155,8 +2311,11 @@
 If the link has been made using <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>, it could have created an
 requestpad, which has to be released using <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2182,8 +2341,11 @@
 Make sure you have added your elements to a bin or pipeline with
 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> before trying to link them.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element_1</code></em> :</span></p></td>
@@ -2215,8 +2377,11 @@
 <p>
 Unlinks a series of elements. Uses <a class="link" href="GstElement.html#gst-element-unlink" title="gst_element_unlink ()"><code class="function">gst_element_unlink()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element_1</code></em> :</span></p></td>
@@ -2248,8 +2413,11 @@
 child of the parent of the other element.  If they have different
 parents, the link fails.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2301,8 +2469,11 @@
 <p>
 This is a convenience function for <a class="link" href="GstPad.html#gst-pad-link-full" title="gst_pad_link_full ()"><code class="function">gst_pad_link_full()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2349,8 +2520,11 @@
 <p>
 This is a convenience function for <a class="link" href="GstPad.html#gst-pad-unlink" title="gst_pad_unlink ()"><code class="function">gst_pad_unlink()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2386,8 +2560,11 @@
 the other element. If they have different parents, the link fails. If <em class="parameter"><code>caps</code></em>
 is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, makes sure that the caps of the link is a subset of <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2440,8 +2617,11 @@
 Make sure you have added your elements to a bin or pipeline with
 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> before trying to link them.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2473,8 +2653,11 @@
 <p>
 Get metadata with <em class="parameter"><code>key</code></em> in <em class="parameter"><code>klass</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
@@ -2502,8 +2685,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2526,8 +2712,11 @@
 PLAYING. Subtracting the base time from the clock time gives
 the running time of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2562,8 +2751,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2591,8 +2783,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2617,8 +2812,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2640,8 +2838,11 @@
 Returns the bus of the element. Note that only a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> will provide a
 bus for the application.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2658,13 +2859,73 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-element-set-context"></a><h3>gst_element_set_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_set_context             (<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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Sets the context of the element. Increases the refcount of the context.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 set the context of.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> to set. <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-context"></a><h3>gst_element_get_context ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        gst_element_get_context             (<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 current context of the element.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 get the context from.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The current context of the element. <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-get-factory"></a><h3>gst_element_get_factory ()</h3>
 <pre class="programlisting"><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="returnvalue">GstElementFactory</span></a> * gst_element_get_factory             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 <p>
 Retrieves the factory that was used to create this element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2687,8 +2948,11 @@
 <p>
 Sets the name of the element, getting rid of the old name if there was one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
@@ -2712,8 +2976,11 @@
 For a nameless element, 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
@@ -2735,8 +3002,11 @@
 <p>
 Sets the parent of an element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
@@ -2757,8 +3027,11 @@
 <p>
 Get the parent of an element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
@@ -2782,8 +3055,11 @@
 refcount on the clock. Any previously set clock on the object
 is unreffed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2812,8 +3088,11 @@
 Gets the currently configured clock of the element. This is the clock as was
 last set 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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2840,8 +3119,11 @@
 state. Some elements can provide a clock in other states.</div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2872,14 +3154,18 @@
 element will perform the remainder of the state change asynchronously in
 another thread.
 An application can use <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a> to wait for the completion
-of the state change or it can wait for a state change message on the bus.
+of the state change or it can wait for a <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a> or
+<a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-STATE-CHANGED:CAPS"><code class="literal">GST_MESSAGE_STATE_CHANGED</code></a> on the bus.
 </p>
 <p>
 State changes to <a class="link" href="GstElement.html#GST-STATE-READY:CAPS"><code class="literal">GST_STATE_READY</code></a> or <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> never return
 <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><span class="type">GST_STATE_CHANGE_ASYNC</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2929,8 +3215,11 @@
 an element is not producing data to complete the preroll. When setting the
 element to playing, the preroll will complete and playback will start.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -2977,8 +3266,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3011,8 +3303,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3040,8 +3335,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 abort the state of.</td>
@@ -3068,8 +3366,11 @@
 This method is used internally and should normally not be called by plugins
 or applications.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3112,8 +3413,11 @@
 This function is used internally and should normally not be called from
 plugins or applications.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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> the state is lost of</td>
@@ -3127,8 +3431,11 @@
 <p>
 Gets a string representing the given state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
@@ -3150,8 +3457,11 @@
 <p>
 Gets a string representing the given state change result.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>state_ret</code></em> :</span></p></td>
@@ -3174,8 +3484,11 @@
 Tries to change the state of the element to the same as its parent.
 If this function returns FALSE, the state of element is undefined.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3201,8 +3514,11 @@
 This function must be called with STATE_LOCK held and is mainly used
 internally.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3242,8 +3558,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3301,8 +3620,11 @@
 message; if you want to access the message after this call, you should add an
 additional reference before calling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3339,8 +3661,11 @@
 <p>
 Please note that some queries might need a running pipeline to work.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3370,8 +3695,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3412,8 +3740,11 @@
 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3445,8 +3776,11 @@
 <p>
 Queries an element for the total stream duration.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3485,8 +3819,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3531,8 +3868,11 @@
 PAUSED. If the element supports seek in READY, it will always return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when
 it receives the event in the READY state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3583,8 +3923,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -3639,8 +3982,11 @@
 Note that this signal will usually be emitted from the context of
 the streaming thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstelement</code></em> :</span></p></td>
@@ -3666,8 +4012,11 @@
 you will need to set them to the desired target state with
 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a> or <a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()"><code class="function">gst_element_sync_state_with_parent()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstelement</code></em> :</span></p></td>
@@ -3693,8 +4042,11 @@
 <p>
 a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> has been removed from the element
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstelement</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstElementFactory.html b/docs/gst/html/GstElementFactory.html
index c9aabd9..88f82b5 100644
--- a/docs/gst/html/GstElementFactory.html
+++ b/docs/gst/html/GstElementFactory.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstElementFactory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -141,7 +141,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp19070464"></a><p class="title"><b>Example 6. Using an element factory</b></p>
+<a name="idp20143840"></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>
@@ -202,8 +202,11 @@
 Create a new elementfactory capable of instantiating objects of the
 <em class="parameter"><code>type</code></em> and add the factory to <em class="parameter"><code>plugin</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -239,8 +242,11 @@
 Search for an element factory of the given name. Refs the returned
 element factory; caller is responsible for unreffing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -265,8 +271,11 @@
 only be retrieved if the element factory is loaded, which can be
 assured with <a class="link" href="GstPluginFeature.html#gst-plugin-feature-load" title="gst_plugin_feature_load ()"><code class="function">gst_plugin_feature_load()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -288,8 +297,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -316,8 +328,11 @@
 <p>
 Get the available keys for the metadata on <em class="parameter"><code>factory</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -341,8 +356,11 @@
 <p>
 Gets the number of pad_templates in this factory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -363,8 +381,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -389,8 +410,11 @@
 array, as it is still owned by the element factory. Use <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strdupv"><code class="function">g_strdupv()</code></a> to
 make a copy of the protocol string array if you need to.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -414,8 +438,11 @@
 <p>
 Check if <em class="parameter"><code>factory</code></em> implements the interface with name <em class="parameter"><code>interfacename</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -444,8 +471,11 @@
 It will be given the name supplied, since all elements require a name as
 their first argument.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -477,8 +507,11 @@
 consisting of the element factory name and a number.
 If name is given, it will be given the name supplied.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factoryname</code></em> :</span></p></td>
@@ -507,8 +540,11 @@
 <p>
 Checks if the factory can sink all possible capabilities.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -535,8 +571,11 @@
 <p>
 Checks if the factory can src all possible capabilities.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -563,8 +602,11 @@
 <p>
 Checks if the factory can sink any possible capability.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -591,8 +633,11 @@
 <p>
 Checks if the factory can src any possible capability.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -618,8 +663,11 @@
 <p>
 Gets the <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="GstPadTemplate.html#GstStaticPadTemplate" title="struct GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> for this factory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -835,8 +883,11 @@
 are a complete superset of <em class="parameter"><code>caps</code></em> will be returned. Else any element
 whose pad templates caps can intersect with <em class="parameter"><code>caps</code></em> will be returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -878,8 +929,11 @@
 with a rank greater or equal to <em class="parameter"><code>minrank</code></em> will be returned.
 The list of factories is returned by decreasing rank.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -908,8 +962,11 @@
 <p>
 Check if <em class="parameter"><code>factory</code></em> is of the given types.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstGhostPad.html b/docs/gst/html/GstGhostPad.html
index c41b343..ab11667 100644
--- a/docs/gst/html/GstGhostPad.html
+++ b/docs/gst/html/GstGhostPad.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstGhostPad</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -152,8 +152,11 @@
 <p>
 Will ref the target.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -186,8 +189,11 @@
 <p>
 The created ghostpad will not have a padtemplate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -219,8 +225,11 @@
 <p>
 Will ref the target.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -255,8 +264,11 @@
 Create a new ghostpad based on <em class="parameter"><code>templ</code></em>, without setting a target. The
 direction will be taken from the <em class="parameter"><code>templ</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -286,8 +298,11 @@
 is unlinked and links to the new target are established. if <em class="parameter"><code>newtarget</code></em> is
 NULL the target will be cleared.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gpad</code></em> :</span></p></td>
@@ -315,8 +330,11 @@
 <p>
 Get the target pad of <em class="parameter"><code>gpad</code></em>. Unref target pad after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gpad</code></em> :</span></p></td>
@@ -345,8 +363,11 @@
 function. Call this function directly after a call to g_object_new
 (GST_TYPE_GHOST_PAD, "direction", <em class="parameter"><code>dir</code></em>, ..., NULL).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gpad</code></em> :</span></p></td>
@@ -370,8 +391,11 @@
 <p>
 Invoke the default activate mode function of a ghost pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -410,8 +434,11 @@
 Invoke the default activate mode function of a proxy pad that is
 owned by a ghost pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -449,8 +476,11 @@
 The internal pad of a <a class="link" href="GstGhostPad.html" title="GstGhostPad"><span class="type">GstGhostPad</span></a> is the internally used
 pad of opposite direction, which is used to link to the target.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -475,8 +505,11 @@
 <p>
 Invoke the default iterate internal links function of the proxy pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -504,8 +537,11 @@
 <p>
 Invoke the default chain function of the proxy pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -538,8 +574,11 @@
 <p>
 Invoke the default chain list function of the proxy pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -574,8 +613,11 @@
 <p>
 Invoke the default getrange function of the proxy pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstObject.html b/docs/gst/html/GstObject.html
index 2d108d8..72e4040 100644
--- a/docs/gst/html/GstObject.html
+++ b/docs/gst/html/GstObject.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstObject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -186,11 +186,11 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp28825360"></a><h3>controlled properties</h3>
+<a name="idp28716320"></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
+are queued for element-properties. At run-time the elements continuously pull
 values changes for the current stream-time.
 </p>
 <p>
@@ -257,8 +257,11 @@
 <p>
 GStreamer base object class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -296,8 +299,11 @@
 <p>
 GStreamer base object class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnownedClass"><span class="type">GInitiallyUnownedClass</span></a> <em class="structfield"><code><a name="GstObjectClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -326,8 +332,11 @@
 <p>
 The standard flags that an gstobject may have.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><a name="GST-OBJECT-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_OBJECT_FLAG_LAST</code></span></p></td>
 <td>subclasses can add additional flags starting from this flag
@@ -343,8 +352,11 @@
 <p>
 This macro returns the entire set of flags for the object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
@@ -360,8 +372,11 @@
 <p>
 This macro checks to see if the given flag is set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -383,8 +398,11 @@
 <p>
 This macro sets the given bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -406,8 +424,11 @@
 <p>
 This macro usets the given bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -429,8 +450,11 @@
 <p>
 Get the name of this object
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
@@ -446,8 +470,11 @@
 <p>
 Get the parent of this object
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
@@ -463,8 +490,11 @@
 <p>
 Get access to the reference count field of the object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
@@ -480,8 +510,11 @@
 <p>
 Get the reference count value of the object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
@@ -498,8 +531,11 @@
 This macro will obtain a lock on the object, making serialization possible.
 It blocks until the lock can be obtained.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to lock</td>
@@ -515,8 +551,11 @@
 This macro will try to obtain a lock on the object, but will return with
 FALSE if it can't get it immediately.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>.</td>
@@ -531,8 +570,11 @@
 <p>
 This macro releases a lock on the object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to unlock.</td>
@@ -547,8 +589,11 @@
 <p>
 Acquire a reference to the mutex of this object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
@@ -567,8 +612,11 @@
 This function makes a copy of the provided name, so the caller
 retains ownership of the name it sent.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -602,8 +650,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -628,8 +679,11 @@
 Sets the parent of <em class="parameter"><code>object</code></em> to <em class="parameter"><code>parent</code></em>. The object's reference count will
 be incremented, and any floating reference will be removed (see <a class="link" href="GstObject.html#gst-object-ref-sink" title="gst_object_ref_sink ()"><code class="function">gst_object_ref_sink()</code></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -657,8 +711,11 @@
 Returns the parent of <em class="parameter"><code>object</code></em>. This function increases the refcount
 of the parent object so you should <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> it after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -686,8 +743,11 @@
 <p>
 MT safe. Grabs and releases <em class="parameter"><code>object</code></em>'s lock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to unparent</td>
@@ -711,8 +771,11 @@
 MT safe. This function grabs and releases <em class="parameter"><code>object</code></em>'s LOCK for getting its
          path string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -748,8 +811,11 @@
 <p>
 The default handler will simply print the error string using g_print.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
@@ -780,8 +846,11 @@
 will lock each <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> in the list to compare the name, so be
 carefull when passing a list with a locked object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -811,8 +880,11 @@
 Check if <em class="parameter"><code>object</code></em> has an ancestor <em class="parameter"><code>ancestor</code></em> somewhere up in
 the hierarchy. One can e.g. check if a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> is inside a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -844,8 +916,11 @@
 constructs like :
  result = gst_object_ref (object-&gt;parent);
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -873,8 +948,11 @@
 The unref method should never be called with the LOCK held since
 this might deadlock the dispose function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to unreference. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> Gst.Object]</span>
@@ -897,8 +975,11 @@
 is not floating, then this call adds a new normal reference increasing the
 reference count by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
 <td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to sink</td>
@@ -918,8 +999,11 @@
 <p>
 Either <em class="parameter"><code>newobj</code></em> and the value pointed to by <em class="parameter"><code>oldobj</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>oldobj</code></em> :</span></p></td>
@@ -951,8 +1035,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -978,8 +1065,11 @@
 Returns a suggestion for timestamps where buffers should be split
 to get best controller results.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1006,8 +1096,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1034,8 +1127,11 @@
 <p>
 Check if the <em class="parameter"><code>object</code></em> has an active controlled properties.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1059,8 +1155,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1082,12 +1181,15 @@
                                                          <em 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 <span class="type">GstController</span> on a property for
-some time, i.e. <code class="function">gst_controller_sync_values()</code> will do nothing for the
+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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1111,12 +1213,17 @@
 <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.
+Attach the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> to the object. 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.
+</p>
+<p>
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1130,8 +1237,8 @@
 <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>
+<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
+has been setup for a non suitable property, <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>
@@ -1145,8 +1252,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1174,8 +1284,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1202,8 +1315,11 @@
 <p>
 Gets the value for the given controlled property at the requested time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1248,8 +1364,11 @@
 <a class="link" href="GstObject.html#gst-object-get-g-value-array" title="gst_object_get_g_value_array ()"><code class="function">gst_object_get_g_value_array()</code></a> returns the array as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValues</span></a> and is
 better suites for bindings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1301,8 +1420,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1354,8 +1476,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1383,8 +1508,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1426,8 +1554,11 @@
 typically attached to the toplevel bin to receive notifications from all
 the elements contained in that bin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstobject</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index 6453666..7c33751 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPad</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -310,6 +310,7 @@
                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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> *stream_id</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#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="GstPad.html#gst-pad-get-stream-id" title="gst_pad_get_stream_id ()">gst_pad_get_stream_id</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#GstPadForwardFunction" title="GstPadForwardFunction ()">*GstPadForwardFunction</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> 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-forward" title="gst_pad_forward ()">gst_pad_forward</a>                     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
@@ -390,7 +391,7 @@
 <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>
-After two pads are retrieved from an element with <code class="function">gst_element_get_pad()</code>,
+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
@@ -454,8 +455,11 @@
 <p>
 The <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> structure. Use the functions to update the variables.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstPad-struct.element-private"></a>element_private</code></em>;</span></p></td>
@@ -485,8 +489,11 @@
 <p>
 The direction of a pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_PAD_UNKNOWN</code></span></p></td>
@@ -528,8 +535,11 @@
 <p>
 Pad state flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-FLAG-BLOCKED:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_BLOCKED</code></span></p></td>
@@ -621,8 +631,11 @@
 <p>
 Result values from gst_pad_link and friends.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-LINK-OK:CAPS"></a><span class="term"><code class="literal">GST_PAD_LINK_OK</code></span></p></td>
@@ -671,8 +684,11 @@
 Macro to test if the given <a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="type">GstPadLinkReturn</span></a> value indicates a failed
 link step.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="type">GstPadLinkReturn</span></a> value</td>
@@ -688,8 +704,11 @@
 Macro to test if the given <a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="type">GstPadLinkReturn</span></a> value indicates a successful
 link step.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="type">GstPadLinkReturn</span></a> value</td>
@@ -726,8 +745,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-LINK-CHECK-NOTHING:CAPS"></a><span class="term"><code class="literal">GST_PAD_LINK_CHECK_NOTHING</code></span></p></td>
@@ -796,8 +818,11 @@
 Note that the custom return values should not be exposed outside of the
 element scope.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-FLOW-CUSTOM-SUCCESS-2:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_SUCCESS_2</code></span></p></td>
@@ -883,8 +908,11 @@
 <p>
 Gets a string representing the given flow return.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
@@ -904,8 +932,11 @@
 <p>
 Get the unique quark for the given GstFlowReturn.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
@@ -933,8 +964,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-MODE-NONE:CAPS"></a><span class="term"><code class="literal">GST_PAD_MODE_NONE</code></span></p></td>
@@ -961,8 +995,11 @@
 <p>
 Return the name of a pad mode, for use in debug messages mostly.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
@@ -987,8 +1024,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
 <td>the pad to get the name from</td>
@@ -1004,8 +1044,11 @@
 decided at construction time so this function does not take
 the LOCK.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1032,8 +1075,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
 <td>the pad to get the parent of</td>
@@ -1048,8 +1094,11 @@
 Gets the parent of <em class="parameter"><code>pad</code></em>, cast to a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>. If a <em class="parameter"><code>pad</code></em> has no parent or
 its parent is not an element, return NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1072,8 +1121,11 @@
 <p>
 Gets the template for <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1097,8 +1149,11 @@
 <p>
 Links the source pad and the sink pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>srcpad</code></em> :</span></p></td>
@@ -1136,8 +1191,11 @@
 <p>
 MT Safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>srcpad</code></em> :</span></p></td>
@@ -1168,8 +1226,11 @@
 Unlinks the source pad from the sink pad. Will emit the <a class="link" href="GstPad.html#GstPad-unlinked" title='The "unlinked" signal'><span class="type">"unlinked"</span></a>
 signal on both pads.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>srcpad</code></em> :</span></p></td>
@@ -1195,8 +1256,11 @@
 <p>
 Checks if a <em class="parameter"><code>pad</code></em> is linked to another pad or not.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1219,8 +1283,11 @@
 Checks if the source pad and the sink pad are compatible so they can be
 linked.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>srcpad</code></em> :</span></p></td>
@@ -1250,8 +1317,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1276,8 +1346,11 @@
 Gets the capabilities currently configured on <em class="parameter"><code>pad</code></em> with the last
 <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-CAPS"><span class="type">GST_EVENT_CAPS</span></a> event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1297,8 +1370,11 @@
 <p>
 Gets the capabilities for <em class="parameter"><code>pad</code></em>'s template.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1321,8 +1397,11 @@
 Gets the peer of <em class="parameter"><code>pad</code></em>. This function refs the peer pad so
 you need to unref it after use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1351,8 +1430,11 @@
 pad. Use this function on a pad that, once it negotiated to a CAPS, cannot
 be renegotiated to something else.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
 <td>the pad to use</td>
@@ -1366,8 +1448,11 @@
 <p>
 Check if <em class="parameter"><code>pad</code></em> has caps set on it with a <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-CAPS"><span class="type">GST_EVENT_CAPS</span></a> event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1390,8 +1475,11 @@
 Returns a new reference of the sticky event of type <em class="parameter"><code>event_type</code></em>
 from the event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1430,12 +1518,15 @@
 </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
+<em class="parameter"><code>event</code></em> can be replaced by assigning a new reference to it.
+This function is responsible for unreffing the old event when
 removing or modifying.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1467,8 +1558,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1495,8 +1589,11 @@
 <p>
 Query if a pad is active
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1523,8 +1620,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-PROBE-DROP:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_DROP</code></span></p></td>
@@ -1591,8 +1691,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <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>
@@ -1724,8 +1827,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1801,8 +1907,11 @@
 <div class="refsect2">
 <a name="gst-pad-probe-info-get-buffer"></a><h3>gst_pad_probe_info_get_buffer ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_pad_probe_info_get_buffer       (<em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo"><span class="type">GstPadProbeInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1826,8 +1935,11 @@
 <div class="refsect2">
 <a name="gst-pad-probe-info-get-event"></a><h3>gst_pad_probe_info_get_event ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_pad_probe_info_get_event        (<em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo"><span class="type">GstPadProbeInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1846,8 +1958,11 @@
 <div class="refsect2">
 <a name="gst-pad-probe-info-get-query"></a><h3>gst_pad_probe_info_get_query ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_pad_probe_info_get_query        (<em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo"><span class="type">GstPadProbeInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1887,8 +2002,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1922,8 +2040,11 @@
 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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1969,8 +2090,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -1992,8 +2116,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2015,8 +2142,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2038,8 +2168,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2061,8 +2194,11 @@
 <p>
 Set the offset that will be applied to the running time of <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2087,8 +2223,11 @@
 will be assigned.
 This function makes a copy of the name so you can safely free the name.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -2118,8 +2257,11 @@
 will be assigned.
 This function makes a copy of the name so you can safely free the name.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
@@ -2148,8 +2290,11 @@
 will be assigned.
 This function makes a copy of the name so you can safely free the name.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
@@ -2176,8 +2321,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-chain-function-full" title="gst_pad_set_chain_function_full ()"><code class="function">gst_pad_set_chain_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2201,8 +2349,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2243,8 +2394,11 @@
 When a chain function detects an error in the data stream, it must post an
 error on the bus and return an appropriate <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2277,8 +2431,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-chain-list-function-full" title="gst_pad_set_chain_list_function_full ()"><code class="function">gst_pad_set_chain_list_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2304,8 +2461,11 @@
 called to process a <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> input buffer list. See
 <a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> for more details.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2346,8 +2506,11 @@
 When a chainlist function detects an error in the data stream, it must
 post an error on the bus and return an appropriate <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2412,8 +2575,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2450,8 +2616,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-getrange-function-full" title="gst_pad_set_getrange_function_full ()"><code class="function">gst_pad_set_getrange_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2476,8 +2645,11 @@
 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
 <a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> for a description of the getrange function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2549,8 +2721,11 @@
 optimal length is returned in <em class="parameter"><code>buffer</code></em>. The length might depend on the value
 of <em class="parameter"><code>offset</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2592,8 +2767,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-event-function-full" title="gst_pad_set_event_function_full ()"><code class="function">gst_pad_set_event_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2616,8 +2794,11 @@
 <p>
 Sets the given event handler for the pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2648,8 +2829,11 @@
 <p>
 Function signature to handle an event for the pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2681,8 +2865,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-link-function-full" title="gst_pad_set_link_function_full ()"><code class="function">gst_pad_set_link_function_full()</code></a> with NULL
 for the user_data and notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2718,8 +2905,11 @@
 If <em class="parameter"><code>link</code></em> is installed on a source pad, it should call the <a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a>
 of the peer sink pad, if present.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2750,8 +2940,11 @@
 <p>
 Function signature to handle a new link on the pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2783,8 +2976,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-unlink-function-full" title="gst_pad_set_unlink_function_full ()"><code class="function">gst_pad_set_unlink_function_full()</code></a> with NULL
 for the user_data and notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2808,8 +3004,11 @@
 Sets the given unlink function for the pad. It will be called
 when the pad is unlinked.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2839,8 +3038,11 @@
 <p>
 Function signature to handle a unlinking the pad prom its peer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2869,8 +3071,11 @@
 that can handle any stream format, but requires all its pads to have
 the same caps.  Two such elements are tee and adder.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2893,7 +3098,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_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>
-Calls <code class="function">gst_pad_accept_caps()</code> for all internally linked pads of <em class="parameter"><code>pad</code></em> and
+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>
@@ -2901,8 +3106,11 @@
 that can handle any stream format, but requires caps that are acceptable for
 all oposite pads.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2928,8 +3136,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-activate-function-full" title="gst_pad_set_activate_function_full ()"><code class="function">gst_pad_set_activate_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -2957,8 +3168,11 @@
 <p>
 Call this function if your sink pad can start a pull-based task.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -2991,8 +3205,11 @@
 activate function that puts the pad in push mode but elements can
 override this function to activate the pad in pull mode if they wish.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3020,8 +3237,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-activatemode-function-full" title="gst_pad_set_activatemode_function_full ()"><code class="function">gst_pad_set_activatemode_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -3046,8 +3266,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3079,8 +3302,11 @@
 <p>
 The prototype of the push and pull activate functions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3116,8 +3342,11 @@
 Check 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3139,8 +3368,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3162,8 +3394,11 @@
 Mark a pad for needing reconfiguration. The next call to
 <a class="link" href="GstPad.html#gst-pad-check-reconfigure" title="gst_pad_check_reconfigure ()"><code class="function">gst_pad_check_reconfigure()</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> after this call.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 mark</td>
@@ -3191,8 +3426,11 @@
 In all cases, success or failure, the caller loses its reference to <em class="parameter"><code>buffer</code></em>
 after calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3226,8 +3464,11 @@
 This function takes owership of the provided event so you should
 <a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()"><code class="function">gst_event_ref()</code></a> it if you want to reuse the event after this call.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3269,8 +3510,11 @@
 In all cases, success or failure, the caller loses its reference to <em class="parameter"><code>list</code></em>
 after calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3329,8 +3573,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3371,8 +3618,11 @@
 <p>
 If you don't know what this is, you probably don't want to call it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3424,8 +3674,11 @@
 This function takes owership of the provided event so you should
 <a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()"><code class="function">gst_event_ref()</code></a> it if you want to reuse the event after this call.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3460,8 +3713,11 @@
 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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3503,8 +3759,11 @@
 <p>
 Please also note that some queries might need a running pipeline to work.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3534,8 +3793,11 @@
 The caller is responsible for both the allocation and deallocation of
 the query structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3567,8 +3829,11 @@
 <em class="parameter"><code>pad</code></em>, only one will be sent the query.
 Multi-sinkpad elements should implement custom query handlers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3600,8 +3865,11 @@
 <p>
 Queries a pad for the stream position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3632,8 +3900,11 @@
 <p>
 Queries a pad for the total stream duration.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3667,8 +3938,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3706,8 +3980,11 @@
 <p>
 Check if the given pad accepts the caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3731,8 +4008,8 @@
                                                          <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
-<code class="function">gst_pad_set_caps()</code> - 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.
+Note that this method doesn't necessarily return the caps set by sending a
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-caps" title="gst_event_new_caps ()"><code class="function">gst_event_new_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.
@@ -3748,8 +4025,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3777,8 +4057,11 @@
 <p>
 Queries the peer of a given sink pad for the stream position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3811,8 +4094,11 @@
 <p>
 Queries the peer pad of a given sink pad for the total stream duration.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3848,8 +4134,11 @@
 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3889,8 +4178,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3923,8 +4215,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -3953,8 +4248,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-query-function-full" title="gst_pad_set_query_function_full ()"><code class="function">gst_pad_set_query_function_full()</code></a> with NULL for the user_data and
 notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -3977,8 +4275,11 @@
 <p>
 Set the given query function for the pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4009,8 +4310,11 @@
 <p>
 The signature of the query function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4042,8 +4346,11 @@
 Calls <a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function-full" title="gst_pad_set_iterate_internal_links_function_full ()"><code class="function">gst_pad_set_iterate_internal_links_function_full()</code></a> with NULL
 for the user_data and notify.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
@@ -4067,8 +4374,11 @@
 <p>
 Sets the given internal link iterator function for the pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4098,8 +4408,11 @@
 <p>
 The signature of the internal pad link iterator function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4135,8 +4448,11 @@
 <p>
 Free-function: gst_iterator_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4167,8 +4483,11 @@
 <p>
 The caller must free this iterator after use with <a class="link" href="gstreamer-GstIterator.html#gst-iterator-free" title="gst_iterator_free ()"><code class="function">gst_iterator_free()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4197,8 +4516,11 @@
 This function can only be used by the element that owns the pad.
 No locking is performed in this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4219,8 +4541,11 @@
 Gets the private data of a pad.
 No locking is performed in this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4256,8 +4581,16 @@
 handler interface should ideally generate a unique, deterministic
 stream-id manually instead.
 </p>
-<div class="variablelist"><table border="0">
+<p>
+Since stream IDs are sorted alphabetically, any numbers in the
+stream ID should be printed with a fixed number of characters,
+preceded by 0's, such as by using the format %<code class="literal">03u</code> instead of %<code class="literal">u</code>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4304,8 +4637,11 @@
 handler interface should ideally generate a unique, deterministic
 stream-id manually instead.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4357,8 +4693,11 @@
 handler interface should ideally generate a unique, deterministic
 stream-id manually instead.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4388,6 +4727,42 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-pad-get-stream-id"></a><h3>gst_pad_get_stream_id ()</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_pad_get_stream_id               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<p>
+Returns the current stream-id for the <em class="parameter"><code>pad</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 none has been
+set yet, i.e. the pad has not received a stream-start event yet.
+</p>
+<p>
+This is a convenience wrapper around <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="gstreamer-GstEvent.html#gst-event-parse-stream-start" title="gst_event_parse_stream_start ()"><code class="function">gst_event_parse_stream_start()</code></a>.
+</p>
+<p>
+The returned stream-id string should be treated as an opaque string, its
+contents should not be interpreted.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>A source <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 newly-allocated copy of the stream-idfor <em class="parameter"><code>pad</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the returned string when no longer needed.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstPadForwardFunction"></a><h3>GstPadForwardFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadForwardFunction)            (<em class="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> user_data</code></em>);</pre>
@@ -4395,8 +4770,11 @@
 A forward function is called for all internally linked pads, see
 <a class="link" href="GstPad.html#gst-pad-forward" title="gst_pad_forward ()"><code class="function">gst_pad_forward()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4427,8 +4805,11 @@
 <p>
 When <em class="parameter"><code>forward</code></em> returns TRUE, no further pads will be processed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4478,8 +4859,11 @@
 In all cases, success or failure, the caller loses its reference to <em class="parameter"><code>buffer</code></em>
 after calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4527,8 +4911,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4560,8 +4947,11 @@
 The <a class="link" href="GstPad.html#GST-PAD-STREAM-LOCK:CAPS" title="GST_PAD_STREAM_LOCK()"><span class="type">GST_PAD_STREAM_LOCK</span></a> of <em class="parameter"><code>pad</code></em> will automatically be acquired
 before <em class="parameter"><code>func</code></em> is called.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4595,8 +4985,11 @@
 function executed by the task is finished if this function is not
 called from the task function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4627,8 +5020,11 @@
 Regardless of whether the pad has a task, the stream lock is acquired and
 released so as to ensure that streaming through this pad has finished.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4659,8 +5055,11 @@
 If not <em class="parameter"><code>active</code></em>, calls <a class="link" href="GstPad.html#gst-pad-activate-mode" title="gst_pad_activate_mode ()"><code class="function">gst_pad_activate_mode()</code></a> with the pad's current mode
 and a FALSE argument.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4688,8 +5087,11 @@
 Get the stream lock of <em class="parameter"><code>pad</code></em>. The stream lock is protecting the
 resources used in the data processing functions of <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -4705,8 +5107,11 @@
 <p>
 Lock the stream lock of <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -4723,8 +5128,11 @@
 Try to Lock the stream lock of the pad, return TRUE if the lock could be
 taken.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -4740,8 +5148,11 @@
 <p>
 Unlock the stream lock of <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -4781,8 +5192,11 @@
 <p>
 Signals that a pad has been linked to the peer pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -4808,8 +5222,11 @@
 <p>
 Signals that a pad has been unlinked from the peer pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstPadTemplate.html b/docs/gst/html/GstPadTemplate.html
index fecaa29..353e2d0 100644
--- a/docs/gst/html/GstPadTemplate.html
+++ b/docs/gst/html/GstPadTemplate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPadTemplate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -132,7 +132,7 @@
 The following code example shows the code to create a pad from a padtemplate.
 </p>
 <div class="example">
-<a name="idp3540608"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
+<a name="idp9615248"></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>
@@ -228,8 +228,11 @@
 <p>
 Structure describing the <a class="link" href="GstPadTemplate.html#GstStaticPadTemplate" title="struct GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstStaticPadTemplate.name-template"></a>name_template</code></em>;</span></p></td>
@@ -258,8 +261,11 @@
 Convenience macro to fill the values of a GstStaticPadTemplate
 structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>padname</code></em> :</span></p></td>
@@ -287,8 +293,11 @@
 <p>
 Converts a <a class="link" href="GstPadTemplate.html#GstStaticPadTemplate" title="struct GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> into a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad_template</code></em> :</span></p></td>
@@ -309,8 +318,11 @@
 <p>
 Gets the capabilities of the static pad template.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
@@ -346,8 +358,11 @@
 <p>
 Flags for the padtemplate
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><a name="GST-PAD-TEMPLATE-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_PAD_TEMPLATE_FLAG_LAST</code></span></p></td>
 <td>first flag that can be used by subclasses.
@@ -367,8 +382,11 @@
 <p>
 Indicates when this pad will become available.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PAD-ALWAYS:CAPS"></a><span class="term"><code class="literal">GST_PAD_ALWAYS</code></span></p></td>
@@ -397,8 +415,11 @@
 <p>
 Get the nametemplate of the padtemplate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
 <td>the template to query</td>
@@ -413,8 +434,11 @@
 <p>
 Get the <a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> of the padtemplate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
 <td>the template to query</td>
@@ -429,8 +453,11 @@
 <p>
 Get the <a class="link" href="GstPadTemplate.html#GstPadPresence" title="enum GstPadPresence"><span class="type">GstPadPresence</span></a> of the padtemplate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
 <td>the template to query</td>
@@ -445,8 +472,11 @@
 <p>
 Get a handle to the padtemplate <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
 <td>the template to query</td>
@@ -461,8 +491,11 @@
 <p>
 Check if the properties of the padtemplate are fixed
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
 <td>the template to query</td>
@@ -480,8 +513,11 @@
 Creates a new pad template with a name according to the given template
 and with the given arguments.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name_template</code></em> :</span></p></td>
@@ -515,8 +551,11 @@
 <p>
 Gets the capabilities of the pad template.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
@@ -579,8 +618,11 @@
 <p>
 This signal is fired when an element creates a pad from this template.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad_template</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstPipeline.html b/docs/gst/html/GstPipeline.html
index 92171e2..9ae8297 100644
--- a/docs/gst/html/GstPipeline.html
+++ b/docs/gst/html/GstPipeline.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPipeline</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -163,8 +163,11 @@
 <p>
 The <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *<em class="structfield"><code><a name="GstPipeline-struct.fixed-clock"></a>fixed_clock</code></em>;</span></p></td>
@@ -198,8 +201,11 @@
 <p>
 Pipeline flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PIPELINE-FLAG-FIXED-CLOCK:CAPS"></a><span class="term"><code class="literal">GST_PIPELINE_FLAG_FIXED_CLOCK</code></span></p></td>
@@ -221,8 +227,11 @@
 <p>
 Create a new pipeline with the given name.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -246,8 +255,11 @@
 Gets the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> of <em class="parameter"><code>pipeline</code></em>. The bus allows applications to receive
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> packets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -272,8 +284,11 @@
 Set the clock for <em class="parameter"><code>pipeline</code></em>. The clock will be distributed
 to all the elements managed by the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -301,8 +316,11 @@
 <p>
 Gets the current clock used by <em class="parameter"><code>pipeline</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -334,8 +352,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -366,8 +387,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
 <td>a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>
@@ -399,8 +423,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -423,8 +450,11 @@
 Check if <em class="parameter"><code>pipeline</code></em> will automatically flush messages when going to
 the NULL state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -459,8 +489,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
@@ -481,8 +514,11 @@
 <p>
 Get the configured delay (see <a class="link" href="GstPipeline.html#gst-pipeline-set-delay" title="gst_pipeline_set_delay ()"><code class="function">gst_pipeline_set_delay()</code></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstPlugin.html b/docs/gst/html/GstPlugin.html
index 58d40ba..acff08b 100644
--- a/docs/gst/html/GstPlugin.html
+++ b/docs/gst/html/GstPlugin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -160,8 +160,11 @@
 <p>
 Get the error quark.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>The error quark used in GError messages</td>
@@ -189,8 +192,11 @@
 <p>
 The plugin loading errors
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PLUGIN-ERROR-MODULE:CAPS"></a><span class="term"><code class="literal">GST_PLUGIN_ERROR_MODULE</code></span></p></td>
@@ -243,8 +249,11 @@
 The <em class="parameter"><code>licence</code></em> parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL,
 BSD, MIT/X11, Proprietary, unknown.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstPluginDesc.major-version"></a>major_version</code></em>;</span></p></td>
@@ -307,8 +316,11 @@
 This function will be called by the loader at startup. One would then
 register each <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -334,8 +346,11 @@
 register each <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>. This version allows
 user data to be passed to init function (useful for bindings).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -373,8 +388,11 @@
 If defined, the GST_PACKAGE_RELEASE_DATETIME will also be used for the
 <a class="link" href="GstPlugin.html#GstPluginDesc" title="struct GstPluginDesc"><span class="type">GstPluginDesc</span></a>,release_datetime field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
@@ -433,8 +451,11 @@
 A function that can be used with e.g. <a class="link" href="GstRegistry.html#gst-registry-plugin-filter" title="gst_registry_plugin_filter ()"><code class="function">gst_registry_plugin_filter()</code></a>
 to get a list of plugins that match certain criteria.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -459,8 +480,11 @@
 <p>
 Get the short name of the plugin
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -480,8 +504,11 @@
 <p>
 Get the long descriptive name of the plugin
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -501,8 +528,11 @@
 <p>
 get the filename of the plugin
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -522,8 +552,11 @@
 <p>
 get the license of the plugin
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -543,8 +576,11 @@
 <p>
 get the package the plugin belongs to.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -564,8 +600,11 @@
 <p>
 get the URL where the plugin comes from
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -585,8 +624,11 @@
 <p>
 get the source module the plugin belongs to.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -606,8 +648,11 @@
 <p>
 get the version of the plugin
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -636,8 +681,11 @@
 <p>
 There may be plugins that do not have a valid release date set on them.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -657,8 +705,11 @@
 <p>
 queries if the plugin is loaded into memory
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -679,8 +730,11 @@
 Gets the plugin specific data cache. If it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> there is no cached data
 stored. This is the case when the registry is getting rebuilt.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -706,8 +760,11 @@
 <p>
 The cache is flushed every time the registry is rebuilt.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -729,8 +786,11 @@
 <p>
 Loads the given plugin and refs it.  Caller needs to unref after use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
@@ -768,8 +828,11 @@
 </pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -791,8 +854,11 @@
 <p>
 Load the named plugin. Refs the plugin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -813,8 +879,11 @@
 <p>
 Unrefs each member of <em class="parameter"><code>list</code></em>, then frees the list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
 <td>list of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>. <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>
@@ -844,8 +913,11 @@
 You must make sure that GStreamer has been initialised (with <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a> or
 via <a class="link" href="gstreamer-Gst.html#gst-init-get-option-group" title="gst_init_get_option_group ()"><code class="function">gst_init_get_option_group()</code></a>) before calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>major_version</code></em> :</span></p></td>
@@ -925,8 +997,11 @@
 You must make sure that GStreamer has been initialised (with <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a> or
 via <a class="link" href="gstreamer-Gst.html#gst-init-get-option-group" title="gst_init_get_option_group ()"><code class="function">gst_init_get_option_group()</code></a>) before calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>major_version</code></em> :</span></p></td>
@@ -997,8 +1072,11 @@
 <p>
 The plugin loading state
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PLUGIN-FLAG-CACHED:CAPS"></a><span class="term"><code class="literal">GST_PLUGIN_FLAG_CACHED</code></span></p></td>
@@ -1026,8 +1104,11 @@
 <p>
 Flags used in connection with <a class="link" href="GstPlugin.html#gst-plugin-add-dependency" title="gst_plugin_add_dependency ()"><code class="function">gst_plugin_add_dependency()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PLUGIN-DEPENDENCY-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_PLUGIN_DEPENDENCY_FLAG_NONE</code></span></p></td>
@@ -1075,8 +1156,11 @@
 codec loader which exposes elements and/or caps dependent on what external
 codec libraries are currently installed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
@@ -1140,8 +1224,11 @@
 takes simple strings as arguments instead of string arrays, with multiple
 arguments separated by predefined delimiters (see above).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstPluginFeature.html b/docs/gst/html/GstPluginFeature.html
index b0082bc..f72e79c 100644
--- a/docs/gst/html/GstPluginFeature.html
+++ b/docs/gst/html/GstPluginFeature.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPluginFeature</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -53,6 +53,7 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-rank" title="gst_plugin_feature_get_rank ()">gst_plugin_feature_get_rank</a>         (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);
 #define             <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-name" title="gst_plugin_feature_get_name()">gst_plugin_feature_get_name</a>         (feature)
 <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="returnvalue">GstPlugin</span></a> *         <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-plugin" title="gst_plugin_feature_get_plugin ()">gst_plugin_feature_get_plugin</a>       (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</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="GstPluginFeature.html#gst-plugin-feature-get-plugin-name" title="gst_plugin_feature_get_plugin_name ()">gst_plugin_feature_get_plugin_name</a>  (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);
 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="returnvalue">GstPluginFeature</span></a> *  <a class="link" href="GstPluginFeature.html#gst-plugin-feature-load" title="gst_plugin_feature_load ()">gst_plugin_feature_load</a>             (<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-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-copy" title="gst_plugin_feature_list_copy ()">gst_plugin_feature_list_copy</a>        (<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>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()">gst_plugin_feature_list_free</a>        (<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>);
@@ -101,8 +102,11 @@
 A function that can be used with e.g. <a class="link" href="GstRegistry.html#gst-registry-feature-filter" title="gst_registry_feature_filter ()"><code class="function">gst_registry_feature_filter()</code></a>
 to get a list of pluginfeature that match certain criteria.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -142,8 +146,11 @@
 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>. Any value is valid, including values bigger than
 <em class="parameter"><code>GST_RANK_PRIMARY</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RANK-NONE:CAPS"></a><span class="term"><code class="literal">GST_RANK_NONE</code></span></p></td>
@@ -177,8 +184,11 @@
 Specifies a rank for a plugin feature, so that autoplugging uses
 the most appropriate feature.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -199,8 +209,11 @@
 <p>
 Sets the name of the plugin feature, getting rid of the old name if there was one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -220,8 +233,11 @@
 <p>
 Gets the rank of a plugin feature.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -243,8 +259,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -265,8 +284,11 @@
 <p>
 Get the plugin that provides this feature.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -283,6 +305,32 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-plugin-feature-get-plugin-name"></a><h3>gst_plugin_feature_get_plugin_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_plugin_feature_get_plugin_name  (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);</pre>
+<p>
+Get the name of the plugin that provides this feature.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the name of the plugin that provides this feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+the feature is not associated with a plugin.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-plugin-feature-load"></a><h3>gst_plugin_feature_load ()</h3>
 <pre class="programlisting"><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="returnvalue">GstPluginFeature</span></a> *  gst_plugin_feature_load             (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);</pre>
 <p>
@@ -315,8 +363,11 @@
 
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -339,8 +390,11 @@
 Copies the list of features. Caller should call <em class="parameter"><code>gst_plugin_feature_list_free</code></em>
 when done with the list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -364,8 +418,11 @@
 <p>
 Unrefs each member of <em class="parameter"><code>list</code></em>, then frees the list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
 <td>list
@@ -382,8 +439,11 @@
 <p>
 Debug the plugin feature names in <em class="parameter"><code>list</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</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
@@ -403,8 +463,11 @@
 Checks whether the given plugin feature is at least
  the required version
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
@@ -441,8 +504,11 @@
 Compares the two given <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> instances. This function can be
 used as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareFunc"><span class="type">GCompareFunc</span></a> when sorting by rank and then by name.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>p1</code></em> :</span></p></td>
@@ -459,7 +525,7 @@
 <td>negative value if the rank of p1 &gt; the rank of p2 or the ranks are
 equal but the name of p1 comes before the name of p2; zero if the rank
 and names are equal; positive value if the rank of p1 &lt; the rank of p2 or the
-ranks are equal but the name of p2 comes after the name of p1</td>
+ranks are equal but the name of p2 comes before the name of p1</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/gst/html/GstPreset.html b/docs/gst/html/GstPreset.html
index d8effe2..f33f05b 100644
--- a/docs/gst/html/GstPreset.html
+++ b/docs/gst/html/GstPreset.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPreset</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -134,8 +134,11 @@
 <p>
 <a class="link" href="GstPreset.html" title="GstPreset"><span class="type">GstPreset</span></a> interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstPresetInterface.parent"></a>parent</code></em>;</span></p></td>
@@ -183,8 +186,11 @@
 <p>
 Get a copy of preset names as a NULL terminated string array.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -206,8 +212,11 @@
 <p>
 Get a the names of the GObject properties that can be used for presets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -231,8 +240,11 @@
 <p>
 Load the given preset.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -261,8 +273,11 @@
 Save the current object settings as a preset under the given name. If there
 is already a preset by this <em class="parameter"><code>name</code></em> it will be overwritten.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -292,8 +307,11 @@
 Renames a preset. If there is already a preset by the <em class="parameter"><code>new_name</code></em> it will be
 overwritten.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -325,8 +343,11 @@
 <p>
 Delete the given preset.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -358,8 +379,11 @@
 data <em class="parameter"><code>tag</code></em> names can be something like e.g. "comment". Supplying <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the
 <em class="parameter"><code>value</code></em> will unset an existing value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -398,8 +422,11 @@
 Gets the <em class="parameter"><code>value</code></em> for an existing meta data <em class="parameter"><code>tag</code></em>. Meta data <em class="parameter"><code>tag</code></em> names can be
 something like e.g. "comment". Returned values need to be released when done.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>preset</code></em> :</span></p></td>
@@ -438,8 +465,11 @@
 looking for presets. Any presets in the application dir will shadow the 
 system presets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>app_dir</code></em> :</span></p></td>
@@ -461,8 +491,11 @@
 Gets the directory for application specific presets if set by the
 application.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
diff --git a/docs/gst/html/GstRegistry.html b/docs/gst/html/GstRegistry.html
index 8b38553..119c55f 100644
--- a/docs/gst/html/GstRegistry.html
+++ b/docs/gst/html/GstRegistry.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstRegistry</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -130,7 +130,7 @@
 On startup, plugins are searched for in the plugin search path. The following
 locations are checked in this order:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>location from --gst-plugin-path commandline option.</p></li>
 <li class="listitem"><p>the GST_PLUGIN_PATH environment variable.</p></li>
 <li class="listitem"><p>the GST_PLUGIN_SYSTEM_PATH environment variable.</p></li>
@@ -150,7 +150,7 @@
 For each plugin that is found in the plugin search path, there could be 3
 possibilities for cached information:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>the cache may not contain information about a given file.</p></li>
 <li class="listitem"><p>the cache may have stale information.</p></li>
 <li class="listitem"><p>the cache may have current information.</p></li>
@@ -201,8 +201,11 @@
 reference on the registry, as it is alive as long as GStreamer is
 initialized.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <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>
@@ -218,8 +221,11 @@
 <p>
 Retrieves 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="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> of <em class="parameter"><code>type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -249,8 +255,11 @@
 Returns the registrys feature list cookie. This changes
 every time a feature is added or removed from the registry.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -272,8 +281,11 @@
 <p>
 Retrieves a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of features of the plugin with name <em class="parameter"><code>name</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -300,8 +312,11 @@
 Get a copy of all plugins registered in the given registry. The refcount
 of each element in the list in incremented.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -326,8 +341,11 @@
 Add the plugin to the registry. The plugin-added signal will be emitted.
 This function will sink <em class="parameter"><code>plugin</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -357,8 +375,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -386,8 +407,11 @@
 Every plugin is reffed; use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after use, which
 will unref again.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -430,8 +454,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -470,8 +497,11 @@
 Find the plugin with the given name in the registry.
 The plugin will be reffed; caller is responsible for unreffing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -500,8 +530,11 @@
 <p>
 Find the pluginfeature with the given name and type in the registry.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -533,8 +566,11 @@
 <p>
 Find a <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> with <em class="parameter"><code>name</code></em> in <em class="parameter"><code>registry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -564,8 +600,11 @@
 Scan the given path for plugins to add to the registry. The syntax of the
 path is specific to the registry.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -592,8 +631,11 @@
 Look up a plugin in the given registry with the given filename.
 If found, plugin is reffed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -623,8 +665,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -647,8 +692,11 @@
 Add the feature to the registry. The feature-added signal will be emitted.
 This function sinks <em class="parameter"><code>feature</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -680,8 +728,11 @@
 <em class="parameter"><code>registry</code></em> and whether its version is at least the
 version required.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -725,8 +776,11 @@
 Signals that a feature has been added to the registry (possibly
 replacing a previously-added one by the same name)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
@@ -753,8 +807,11 @@
 Signals that a plugin has been added to the registry (possibly
 replacing a previously-added one by the same name)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstSystemClock.html b/docs/gst/html/GstSystemClock.html
index 8b16062..b876de6 100644
--- a/docs/gst/html/GstSystemClock.html
+++ b/docs/gst/html/GstSystemClock.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstSystemClock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -97,8 +97,11 @@
 <p>
 The different kind of clocks.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CLOCK-TYPE-REALTIME:CAPS"></a><span class="term"><code class="literal">GST_CLOCK_TYPE_REALTIME</code></span></p></td>
@@ -136,8 +139,11 @@
 clock will be increased so you need to unref the clock after
 usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the default clock.
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index ec59451..9e80f92 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTagSetter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -194,8 +194,11 @@
 <p>
 <a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface"><span class="type">GstTagSetterInterface</span></a> interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstTagSetterInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
 <td>parent interface type.</td>
@@ -210,8 +213,11 @@
 Reset the internal taglist. Elements should call this from within the
 state-change handler.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
 <td>a <a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a>
@@ -228,8 +234,11 @@
 <p>
 Merges the given list into the setter's list using the given mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -258,8 +267,11 @@
 Adds the given tag / value pairs on the setter using the given merge mode.
 The list must be terminated with NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -291,8 +303,11 @@
 <p>
 Adds the given tag / GValue pair on the setter using the given merge mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -325,8 +340,11 @@
 Adds the given tag / GValue pairs on the setter using the given merge mode.
 The list must be terminated with NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -359,8 +377,11 @@
 Adds the given tag / value pairs on the setter using the given merge mode.
 The list must be terminated with NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -394,8 +415,11 @@
 Adds the given tag / GValue pairs on the setter using the given merge mode.
 The list must be terminated with NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -428,8 +452,11 @@
 <p>
 This function is not thread-safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -455,8 +482,11 @@
 specified by this interface. The default is <a class="link" href="gstreamer-GstTagList.html#GST-TAG-MERGE-KEEP:CAPS"><span class="type">GST_TAG_MERGE_KEEP</span></a>, which keeps
 the tags set with this interface and discards tags from events.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -478,8 +508,11 @@
 Queries the mode by which tags inside the setter are overwritten by tags
 from events
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstTask.html b/docs/gst/html/GstTask.html
index 28b3365..afb8400 100644
--- a/docs/gst/html/GstTask.html
+++ b/docs/gst/html/GstTask.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTask</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -108,7 +108,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-Deprecated-Thread-APIs.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-Threads.html#GRecMutex"><span class="type">GRecMutex</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>
@@ -165,8 +165,11 @@
 <p>
 The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> <em class="structfield"><code><a name="GstTask-struct.state"></a>state</code></em>;</span></p></td>
@@ -208,8 +211,11 @@
 A function that will repeatedly be called in the thread created by
 a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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>
@@ -228,8 +234,11 @@
 <p>
 The different states a task can be in
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TASK-STARTED:CAPS"></a><span class="term"><code class="literal">GST_TASK_STARTED</code></span></p></td>
@@ -257,8 +266,11 @@
 <p>
 Send a broadcast signal to all waiting task conds
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
 <td>Task to broadcast</td>
@@ -273,8 +285,11 @@
 <p>
 Get access to the cond of the task.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
 <td>Task to get the cond of</td>
@@ -289,8 +304,11 @@
 <p>
 Get access to the task lock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
 <td>Task to get the lock of</td>
@@ -305,8 +323,11 @@
 <p>
 Signal the task cond
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
 <td>Task to signal</td>
@@ -321,8 +342,11 @@
 <p>
 Get access to the state of the task.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
 <td>Task to get the state of</td>
@@ -337,8 +361,11 @@
 <p>
 Wait for the task cond to be signalled
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
 <td>Task to wait for</td>
@@ -365,12 +392,15 @@
 <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-Deprecated-Thread-APIs.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-Threads.html#GRecMutex"><span class="type">GRecMutex</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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -410,8 +440,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -436,8 +469,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -463,8 +499,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -489,8 +528,11 @@
 <p>
 Custom GstTask thread callback functions that can be installed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -521,8 +563,11 @@
 be passed to <em class="parameter"><code>enter_func</code></em> and <em class="parameter"><code>notify</code></em> will be called when <em class="parameter"><code>user_data</code></em> is no
 longer referenced.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -557,8 +602,11 @@
 be passed to <em class="parameter"><code>leave_func</code></em> and <em class="parameter"><code>notify</code></em> will be called when <em class="parameter"><code>user_data</code></em> is no
 longer referenced.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -588,8 +636,11 @@
 <p>
 Get the current state of the task.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -619,8 +670,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -649,8 +703,11 @@
 in the paused state. This function does not wait for the task to complete
 the paused state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -673,8 +730,11 @@
 Starts <em class="parameter"><code>task</code></em>. The <em class="parameter"><code>task</code></em> must have a lock associated with it using
 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> or this function will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -698,8 +758,11 @@
 will not wait for the task to have completely stopped. Use
 <a class="link" href="GstTask.html#gst-task-join" title="gst_task_join ()"><code class="function">gst_task_join()</code></a> to stop and wait for completion.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
@@ -730,8 +793,11 @@
 would cause a deadlock. The function will detect this and print a
 g_warning.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstTaskPool.html b/docs/gst/html/GstTaskPool.html
index 50d58fb..6e349a9 100644
--- a/docs/gst/html/GstTaskPool.html
+++ b/docs/gst/html/GstTaskPool.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTaskPool</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -105,8 +105,11 @@
 <p>
 The <a class="link" href="GstTaskPool.html#GstTaskPoolClass" title="struct GstTaskPoolClass"><span class="type">GstTaskPoolClass</span></a> object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstTaskPoolClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -138,8 +141,11 @@
 <p>
 Task function, see <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data for the task function</td>
@@ -154,8 +160,11 @@
 Create a new default task pool. The default task pool will use a regular
 GThreadPool for threads.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a>. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_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>
@@ -174,8 +183,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -199,8 +211,11 @@
 <p>
 Start the execution of a new thread from <em class="parameter"><code>pool</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -240,8 +255,11 @@
 Join a task and/or return it to the pool. <em class="parameter"><code>id</code></em> is the id obtained from 
 <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -266,8 +284,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
 <td>a <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a>
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index 772c214..6b88634 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTypeFindFactory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -73,7 +73,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp34431136"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
+<a name="idp16891792"></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>
@@ -197,8 +197,11 @@
 <p>
 Free-function: gst_plugin_feature_list_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the list of all
@@ -218,8 +221,11 @@
 copy it using <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strdupv"><code class="function">g_strdupv()</code></a>.  This function may return NULL to indicate
 a 0-length list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -242,8 +248,11 @@
 <p>
 Gets the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> associated with a typefind factory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -267,8 +276,11 @@
 without typefind functions are a last-effort fallback mechanism to
 e.g. assume a certain media type based on the file extension.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -290,8 +302,11 @@
 <p>
 Calls the <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> associated with this factory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
diff --git a/docs/gst/html/annotation-glossary.html b/docs/gst/html/annotation-glossary.html
index e48270b..4779246 100644
--- a/docs/gst/html/annotation-glossary.html
+++ b/docs/gst/html/annotation-glossary.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -36,69 +36,56 @@
                       | 
                    <a class="shortcut" href="#glsE">E</a>
                       | 
-                   <a class="shortcut" href="#glsI">I</a>
-                      | 
                    <a class="shortcut" href="#glsT">T</a>
                       | 
+                   <a class="shortcut" href="#glsI">I</a>
+                      | 
                    <a class="shortcut" href="#glsS">S</a>
                       | 
                    <a class="shortcut" href="#glsT">T</a>
 </td></tr>
 </table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
 <a name="glsO"></a><h3 class="title">O</h3>
-<dt>
-<a name="annotation-glossterm-out"></a>out</dt>
-<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
-<dt>
-<a name="annotation-glossterm-scope%20async"></a>scope async</dt>
-<dd><p>The callback is valid until first called.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt>
+<dd class="glossdef"><p>The callback is valid until first called.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
-<dd><p>NULL is ok, both for passing and for returning.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
 <a name="glsI"></a><h3 class="title">I</h3>
-<dt>
-<a name="annotation-glossterm-inout"></a>inout</dt>
-<dd><p>Parameter for input and for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-inout"></a>inout</span></dt>
+<dd class="glossdef"><p>Parameter for input and for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
-<dt>
-<a name="annotation-glossterm-closure"></a>closure</dt>
-<dd><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-closure"></a>closure</span></dt>
+<dd class="glossdef"><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
-<dd><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-array"></a>array</dt>
-<dd><p>Parameter points to an array of items.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
+<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsE"></a><h3 class="title">E</h3>
-<dt>
-<a name="annotation-glossterm-element-type"></a>element-type</dt>
-<dd><p>Generics and defining elements of containers and arrays.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
+<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20container"></a>transfer container</span></dt>
+<dd class="glossdef"><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>
-<dd><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</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>
+<dt><span class="glossterm"><a name="annotation-glossterm-in"></a>in</span></dt>
+<dd class="glossdef"><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
-<dt>
-<a name="annotation-glossterm-scope%20call"></a>scope call</dt>
-<dd><p>The callback is valid only during the call to the method.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
+<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
-<dd><p>Free data after the code is done.</p></dd>
-<dt>
-<a name="annotation-glossterm-type"></a>type</dt>
-<dd><p>Override the parsed C type with given type</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
+<dd class="glossdef"><p>Override the parsed C type with given type</p></dd>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/gst/html/api-index-deprecated.html b/docs/gst/html/api-index-deprecated.html
index 30303d4..b509450 100644
--- a/docs/gst/html/api-index-deprecated.html
+++ b/docs/gst/html/api-index-deprecated.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -12,17 +12,24 @@
 <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">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
 <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 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>
+</tr>
+<tr><td colspan="5" class="shortcuts"><a class="shortcut" href="#idxT">T</a></td></tr>
+</table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-deprecated"></a>Index of deprecated API</h2></div></div></div>
-<a name="idx"></a>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-deprecated"></a>Index of deprecated API</h1></div></div></div>
+<a name="idx"></a><a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free()">gst_tag_list_free</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index 55c3510..a008e48 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -63,8 +63,8 @@
 </td></tr>
 </table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-full"></a>API Index</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>API Index</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
 <a class="link" href="GstAllocator.html#GstAllocationParams" title="struct GstAllocationParams">GstAllocationParams</a>, struct in <a class="link" href="GstAllocator.html" title="GstAllocator">GstAllocator</a>
@@ -212,6 +212,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstBin.html#GST-BIN-IS-NO-RESYNC:CAPS" title="GST_BIN_IS_NO_RESYNC()">GST_BIN_IS_NO_RESYNC</a>, macro in <a class="link" href="GstBin.html" title="GstBin">GstBin</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstBin.html#gst-bin-iterate-all-by-interface" title="gst_bin_iterate_all_by_interface ()">gst_bin_iterate_all_by_interface</a>, function in <a class="link" href="GstBin.html" title="GstBin">GstBin</a>
 </dt>
 <dd></dd>
@@ -356,6 +360,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-extract-dup" title="gst_buffer_extract_dup ()">gst_buffer_extract_dup</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-fill" title="gst_buffer_fill ()">gst_buffer_fill</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -813,6 +821,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures">GstCapsFeatures</a>, struct in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstCaps.html#GstCapsFlags" title="enum GstCapsFlags">GstCapsFlags</a>, enum in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -833,6 +845,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-append-structure-full" title="gst_caps_append_structure_full ()">gst_caps_append_structure_full</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-can-intersect" title="gst_caps_can_intersect ()">gst_caps_can_intersect</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -845,6 +861,94 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-add" title="gst_caps_features_add ()">gst_caps_features_add</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-add-id" title="gst_caps_features_add_id ()">gst_caps_features_add_id</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-contains" title="gst_caps_features_contains ()">gst_caps_features_contains</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-contains-id" title="gst_caps_features_contains_id ()">gst_caps_features_contains_id</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-copy" title="gst_caps_features_copy ()">gst_caps_features_copy</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-free" title="gst_caps_features_free ()">gst_caps_features_free</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-from-string" title="gst_caps_features_from_string ()">gst_caps_features_from_string</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-get-nth" title="gst_caps_features_get_nth ()">gst_caps_features_get_nth</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-get-nth-id" title="gst_caps_features_get_nth_id ()">gst_caps_features_get_nth_id</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-get-size" title="gst_caps_features_get_size ()">gst_caps_features_get_size</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-is-any" title="gst_caps_features_is_any ()">gst_caps_features_is_any</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-is-equal" title="gst_caps_features_is_equal ()">gst_caps_features_is_equal</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new" title="gst_caps_features_new ()">gst_caps_features_new</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-any" title="gst_caps_features_new_any ()">gst_caps_features_new_any</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-empty" title="gst_caps_features_new_empty ()">gst_caps_features_new_empty</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-id" title="gst_caps_features_new_id ()">gst_caps_features_new_id</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-id-valist" title="gst_caps_features_new_id_valist ()">gst_caps_features_new_id_valist</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-valist" title="gst_caps_features_new_valist ()">gst_caps_features_new_valist</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-remove" title="gst_caps_features_remove ()">gst_caps_features_remove</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-remove-id" title="gst_caps_features_remove_id ()">gst_caps_features_remove_id</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-set-parent-refcount" title="gst_caps_features_set_parent_refcount ()">gst_caps_features_set_parent_refcount</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-to-string" title="gst_caps_features_to_string ()">gst_caps_features_to_string</a>, function in <a class="link" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">GstCapsFeatures</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>
@@ -869,6 +973,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-get-features" title="gst_caps_get_features ()">gst_caps_get_features</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-get-size" title="gst_caps_get_size ()">gst_caps_get_size</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -925,6 +1033,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-is-subset-structure-full" title="gst_caps_is_subset_structure_full ()">gst_caps_is_subset_structure_full</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-writable" title="gst_caps_is_writable()">gst_caps_is_writable</a>, macro in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -941,6 +1053,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-merge-structure-full" title="gst_caps_merge_structure_full ()">gst_caps_merge_structure_full</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-any" title="gst_caps_new_any ()">gst_caps_new_any</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -993,6 +1109,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-set-features" title="gst_caps_set_features ()">gst_caps_set_features</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-set-simple" title="gst_caps_set_simple ()">gst_caps_set_simple</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -1361,6 +1481,46 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext">GstContext</a>, struct in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-copy" title="gst_context_copy ()">gst_context_copy</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-get-structure" title="gst_context_get_structure ()">gst_context_get_structure</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-is-writable" title="gst_context_is_writable()">gst_context_is_writable</a>, macro in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-make-writable" title="gst_context_make_writable()">gst_context_make_writable</a>, macro in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-new" title="gst_context_new ()">gst_context_new</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-ref" title="gst_context_ref ()">gst_context_ref</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-replace" title="gst_context_replace ()">gst_context_replace</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-unref" title="gst_context_unref ()">gst_context_unref</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstContext.html#gst-context-writable-structure" title="gst_context_writable_structure ()">gst_context_writable_structure</a>, function in <a class="link" href="gstreamer-GstContext.html" title="GstContext">GstContext</a>
+</dt>
+<dd></dd>
+<dt>
 <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>
@@ -1730,6 +1890,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstInfo.html#gst-debug-set-threshold-from-string" title="gst_debug_set_threshold_from_string ()">gst_debug_set_threshold_from_string</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-unset-threshold-for-name" title="gst_debug_unset_threshold_for_name ()">gst_debug_unset_threshold_for_name</a>, function in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -2043,6 +2207,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstElement.html#gst-element-get-context" title="gst_element_get_context ()">gst_element_get_context</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-factory" title="gst_element_get_factory ()">gst_element_get_factory</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -2235,6 +2403,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstElement.html#gst-element-set-context" title="gst_element_set_context ()">gst_element_set_context</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>
@@ -2371,6 +2543,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-context" title="gst_event_new_context ()">gst_event_new_context</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-custom" title="gst_event_new_custom ()">gst_event_new_custom</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2451,6 +2627,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-context" title="gst_event_parse_context ()">gst_event_parse_context</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-flush-stop" title="gst_event_parse_flush_stop ()">gst_event_parse_flush_stop</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2487,6 +2667,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-flags" title="gst_event_parse_stream_flags ()">gst_event_parse_stream_flags</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-start" title="gst_event_parse_stream_start ()">gst_event_parse_stream_start</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2519,6 +2703,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-set-stream-flags" title="gst_event_set_stream_flags ()">gst_event_set_stream_flags</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-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>
@@ -2980,10 +3168,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-NOT-MAPPABLE:CAPS" title="GST_MEMORY_IS_NOT_MAPPABLE()">GST_MEMORY_IS_NOT_MAPPABLE</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-NO-SHARE:CAPS" title="GST_MEMORY_IS_NO_SHARE()">GST_MEMORY_IS_NO_SHARE</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-PHYSICALLY-CONTIGUOUS:CAPS" title="GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS()">GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS</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-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>
@@ -2992,6 +3188,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-is-type" title="gst_memory_is_type ()">gst_memory_is_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-memory-is-writable" title="gst_memory_is_writable()">gst_memory_is_writable</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3012,6 +3212,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-make-writable" title="gst_memory_make_writable()">gst_memory_make_writable</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-map" title="gst_memory_map ()">gst_memory_map</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3052,10 +3256,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-add-context-type" title="gst_message_add_context_type ()">gst_message_add_context_type</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-copy" title="gst_message_copy ()">gst_message_copy</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-get-n-context-types" title="gst_message_get_n_context_types ()">gst_message_get_n_context_types</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-get-seqnum" title="gst_message_get_seqnum ()">gst_message_get_seqnum</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3124,6 +3336,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-new-have-context" title="gst_message_new_have_context ()">gst_message_new_have_context</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-info" title="gst_message_new_info ()">gst_message_new_info</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3132,6 +3348,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-new-need-context" title="gst_message_new_need_context ()">gst_message_new_need_context</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-new-clock" title="gst_message_new_new_clock ()">gst_message_new_new_clock</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3224,6 +3444,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-parse-have-context" title="gst_message_parse_have_context ()">gst_message_parse_have_context</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-info" title="gst_message_parse_info ()">gst_message_parse_info</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3232,6 +3456,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-parse-nth-context-type" title="gst_message_parse_nth_context_type ()">gst_message_parse_nth_context_type</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-progress" title="gst_message_parse_progress ()">gst_message_parse_progress</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3975,6 +4203,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPad.html#gst-pad-get-stream-id" title="gst_pad_get_stream_id ()">gst_pad_get_stream_id</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-STREAM-LOCK:CAPS" title="GST_PAD_GET_STREAM_LOCK()">GST_PAD_GET_STREAM_LOCK</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4551,6 +4783,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-plugin-name" title="gst_plugin_feature_get_plugin_name ()">gst_plugin_feature_get_plugin_name</a>, function in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-rank" title="gst_plugin_feature_get_rank ()">gst_plugin_feature_get_rank</a>, function in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
 </dt>
 <dd></dd>
@@ -4856,6 +5092,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-add-context-type" title="gst_query_add_context_type ()">gst_query_add_context_type</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>
@@ -4884,6 +5124,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-context-types" title="gst_query_get_n_context_types ()">gst_query_get_n_context_types</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>
@@ -4940,6 +5184,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-new-context" title="gst_query_new_context ()">gst_query_new_context</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>
@@ -5016,6 +5264,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-context" title="gst_query_parse_context ()">gst_query_parse_context</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>
@@ -5044,6 +5296,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-context-type" title="gst_query_parse_nth_context_type ()">gst_query_parse_nth_context_type</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-format" title="gst_query_parse_nth_format ()">gst_query_parse_nth_format</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5084,6 +5340,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-remove-nth-allocation-param" title="gst_query_remove_nth_allocation_param ()">gst_query_remove_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-remove-nth-allocation-pool" title="gst_query_remove_nth_allocation_pool ()">gst_query_remove_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-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>
@@ -5108,6 +5372,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-set-context" title="gst_query_set_context ()">gst_query_set_context</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>
@@ -5810,6 +6078,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstStructure.html#gst-structure-new-from-string" title="gst_structure_new_from_string ()">gst_structure_new_from_string</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>
@@ -7229,6 +7501,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-get-caps-features" title="gst_value_get_caps_features ()">gst_value_get_caps_features</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>
@@ -7305,6 +7581,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS-FEATURES:CAPS" title="GST_VALUE_HOLDS_CAPS_FEATURES()">GST_VALUE_HOLDS_CAPS_FEATURES</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>
@@ -7405,6 +7685,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-set-caps-features" title="gst_value_set_caps_features ()">gst_value_set_caps_features</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>
diff --git a/docs/gst/html/gst-building.html b/docs/gst/html/gst-building.html
index ac7d148..c435b3b 100644
--- a/docs/gst/html/gst-building.html
+++ b/docs/gst/html/gst-building.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -31,7 +31,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7061968"></a><h2>Building GStreamer on UNIX</h2>
+<a name="idp9601680"></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
@@ -78,7 +78,7 @@
 <p>
 
     </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
           <span class="symbol">GST_REMOVE_DEPRECATED</span> - Omit deprecated functions
           from the library.
@@ -92,7 +92,7 @@
   </p>
 </div>
 <div class="refsect1">
-<a name="idp7273552"></a><h2>Building GStreamer Applications</h2>
+<a name="idp6992976"></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 a83817f..ab9f7cd 100644
--- a/docs/gst/html/gst-running.html
+++ b/docs/gst/html/gst-running.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -31,25 +31,29 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7440000"></a><h2>Running and debugging GStreamer Applications</h2>
+<a name="idp7463296"></a><h2>Running and debugging GStreamer Applications</h2>
 <div class="refsect2">
-<a name="idp6536032"></a><h3>Environment variables</h3>
+<a name="idp6761232"></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>. 
 </p>
-<p><a name="GST_PLUGIN_SYSTEM_PATH"></a><b><code class="envar">GST_PLUGIN_SYSTEM_PATH</code>. </b>
+<p><a name="GST_PLUGIN_SYSTEM_PATH"></a><b><code class="envar">GST_PLUGIN_SYSTEM_PATH</code>,
+         <code class="envar">GST_PLUGIN_SYSTEM_PATH_1_0</code>. </b>
 
 This environment variable can be set to a colon-separated list of paths.
 If this variable is not set, GStreamer will fill in this list for you
 with
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
-plug-ins in the user's home directory.  These are stored in a directory called
+plug-ins in the user's home directory, or rather the user's "data home"
+directory according to the xdg base dir specification. Usually this will be
+a directory called
 <code class="filename">plugins</code> inside the
-<code class="filename">.gstreamer-1.0</code> directory in the user's
-home directory.
+<code class="filename">.local/share/.gstreamer-1.0</code> directory in
+the user's home directory by default, though this search path may change if
+the XDG_DATA_HOME environment variable is set.
     </p></li>
 <li class="listitem"><p>
 plug-ins installed system-wide.  On this system, they are stored in
@@ -64,14 +68,24 @@
 The paths are scanned in the given order.  This allows a user to override
 system-installed plug-ins with his own versions.
    
+The GST_PLUGIN_SYSTEM_PATH_1_0 variant is useful if both the old GStreamer 0.10
+version and the new GStreamer 1.0 version need to be pointed to new plugin
+paths. The latter will use the _1_0 variant over the non-versioned one if
+it is set.
+  
 Setting this variable to an empty string will cause GStreamer not to scan any
 system paths at all for plug-ins.  This can be useful if you're running
 uninstalled (for development purposes) or while running testsuites.
    </p>
-<p><a name="GST_PLUGIN_PATH"></a><b><code class="envar">GST_PLUGIN_PATH</code>. </b>
+<p><a name="GST_PLUGIN_PATH"></a><b><code class="envar">GST_PLUGIN_PATH</code>, <code class="envar">GST_PLUGIN_PATH_1_0</code>. </b>
 This environment variable can be set to a colon-separated list of paths.
 GStreamer will scan these paths for GStreamer plug-ins.  These plug-ins will
 be loaded in addition to, and before, the plug-ins in the system paths.
+  
+The GST_PLUGIN_PATH_1_0 variant is useful if both the old GStreamer 0.10
+version and the new GStreamer 1.0 version need to be pointed to new plugin
+paths. The latter will use the _1_0 variant over the non-versioned one if
+it is set.
   </p>
 <p><a name="GST_DEBUG"></a><b><code class="envar">GST_DEBUG</code>. </b>
 If GStreamer has been configured with <code class="option">--enable-gst-debug=yes</code>,
@@ -82,8 +96,11 @@
 to set specific levels for the individual categories.
 The level value ranges from 0 (nothing) to 9 (MEMDUMP).
     </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">1 - <code class="option">ERROR</code></span></p></td>
@@ -169,6 +186,9 @@
 <code class="option">*:6</code> log is also what will be requested usually. It's often
 also worth running with <code class="option">*:3</code> to see if there are any
 non-fatal errors or warnings that might be related to the problem at hand.
+  
+Since GStreamer 1.2 it is also possible to specify debug levels by name,
+e.g. GST_DEBUG=*:WARNING,*audio*:LOG
   </p>
 <p><a name="GST_DEBUG_NO_COLOR"></a><b><code class="envar">GST_DEBUG_NO_COLOR</code>. </b>
 Set this environment variable to any value ("1" typically) to switch off
@@ -191,6 +211,22 @@
 Set this environment variable to a path to turn on all
 #GST_DEBUG_BIN_TO_DOT_FILE or #GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS calls
 and have the dot files in that location.
+  
+This will only work if the application in question makes these calls in
+strategic places (like when the pipeline state changes or an error occurs).
+gst-launch-1.0 is one such application.
+  
+These .dot files can then be turned into images using the 'dot' utility
+from the graphviz set of tools, like this:
+  <span class="command"><strong>dot foo.dot -Tsvg -o foo.svg</strong></span> or
+  <span class="command"><strong>dot foo.dot -Tpng -o foo.png</strong></span> or
+  <span class="command"><strong>dot foo.dot -Tjpg -o foo.jpg</strong></span>.
+  </p>
+<p><a name="GST_REGISTRY"></a><b><code class="envar">GST_REGISTRY</code>, <code class="envar">GST_REGISTRY_1_0</code>. </b>
+Set this environment variable to make GStreamer use a different file for the
+plugin cache / registry than the default one. This is useful when operating
+in a separate environment which should not affect the default cache in the
+user's home directory.
   </p>
 <p><a name="GST_REGISTRY_FORK"></a><b><code class="envar">GST_REGISTRY_FORK</code>. </b>
 Set this environment variable to "no" to prevent GStreamer from forking on
@@ -210,8 +246,11 @@
   
 The variable takes a comma-separated list of tracing options to enable.
     </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">live</span></p></td>
@@ -236,6 +275,11 @@
 
  Use <code class="option">all</code> to enable all tracing flags.
   </p>
+<p><a name="GST_DEBUG_FILE"></a><b><code class="envar">GST_DEBUG_FILE</code>. </b>
+  Set this variable to a file path to redirect all GStreamer debug
+  messages to this file. If left unset, debug messages with be output
+  unto the standard error.
+  </p>
 <p><a name="ORC_CODE"></a><b><code class="envar">ORC_CODE</code>. </b>
 Useful Orc environment variable. Set ORC_CODE=debug to enable debuggers
 such as gdb to create useful backtraces from Orc-generated code.  Set
diff --git a/docs/gst/html/gstreamer.devhelp2 b/docs/gst/html/gstreamer-1.0.devhelp2
similarity index 95%
rename from docs/gst/html/gstreamer.devhelp2
rename to docs/gst/html/gstreamer-1.0.devhelp2
index 6faf778..7112cae 100644
--- a/docs/gst/html/gstreamer.devhelp2
+++ b/docs/gst/html/gstreamer-1.0.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 1.0 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-1.0" version="2" language="c">
   <chapters>
     <sub name="GStreamer Overview" link="gstreamer.html">
       <sub name="Building GStreamer and GStreamer Applications" link="gst-building.html"/>
@@ -16,10 +16,12 @@
       <sub name="GstBufferPool" link="gstreamer-GstBufferPool.html"/>
       <sub name="GstBus" link="GstBus.html"/>
       <sub name="GstCaps" link="gstreamer-GstCaps.html"/>
+      <sub name="GstCapsFeatures" link="gstreamer-GstCapsFeatures.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="GstContext" link="gstreamer-GstContext.html"/>
       <sub name="GstControlBinding" link="GstControlBinding.html"/>
       <sub name="GstControlSource" link="GstControlSource.html"/>
       <sub name="GstDateTime" link="gstreamer-GstDateTime.html"/>
@@ -71,7 +73,7 @@
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
-    <keyword type="" name="Environment variables" link="gst-running.html#idp6536032"/>
+    <keyword type="" name="Environment variables" link="gst-running.html#idp6761232"/>
     <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"/>
@@ -105,7 +107,7 @@
     <keyword type="function" name="gst_atomic_queue_peek ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek"/>
     <keyword type="function" name="gst_atomic_queue_pop ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop"/>
     <keyword type="function" name="gst_atomic_queue_length ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-length"/>
-    <keyword type="" name="Notes" link="GstBin.html#idp9877728"/>
+    <keyword type="" name="Notes" link="GstBin.html#idp9153312"/>
     <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"/>
@@ -125,6 +127,7 @@
     <keyword type="function" name="gst_bin_remove_many ()" link="GstBin.html#gst-bin-remove-many"/>
     <keyword type="function" name="gst_bin_find_unlinked_pad ()" link="GstBin.html#gst-bin-find-unlinked-pad"/>
     <keyword type="enum" name="enum GstBinFlags" link="GstBin.html#GstBinFlags"/>
+    <keyword type="macro" name="GST_BIN_IS_NO_RESYNC()" link="GstBin.html#GST-BIN-IS-NO-RESYNC:CAPS" since="1.1.1"/>
     <keyword type="macro" name="GST_BIN_CHILDREN()" link="GstBin.html#GST-BIN-CHILDREN:CAPS"/>
     <keyword type="macro" name="GST_BIN_CHILDREN_COOKIE()" link="GstBin.html#GST-BIN-CHILDREN-COOKIE:CAPS"/>
     <keyword type="macro" name="GST_BIN_NUMCHILDREN()" link="GstBin.html#GST-BIN-NUMCHILDREN:CAPS"/>
@@ -183,6 +186,7 @@
     <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_extract_dup ()" link="gstreamer-GstBuffer.html#gst-buffer-extract-dup" since="3.2"/>
     <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"/>
@@ -298,11 +302,15 @@
     <keyword type="function" name="gst_caps_append ()" link="gstreamer-GstCaps.html#gst-caps-append"/>
     <keyword type="function" name="gst_caps_merge ()" link="gstreamer-GstCaps.html#gst-caps-merge"/>
     <keyword type="function" name="gst_caps_append_structure ()" link="gstreamer-GstCaps.html#gst-caps-append-structure"/>
+    <keyword type="function" name="gst_caps_append_structure_full ()" link="gstreamer-GstCaps.html#gst-caps-append-structure-full"/>
     <keyword type="function" name="gst_caps_remove_structure ()" link="gstreamer-GstCaps.html#gst-caps-remove-structure"/>
     <keyword type="function" name="gst_caps_steal_structure ()" link="gstreamer-GstCaps.html#gst-caps-steal-structure"/>
     <keyword type="function" name="gst_caps_merge_structure ()" link="gstreamer-GstCaps.html#gst-caps-merge-structure"/>
+    <keyword type="function" name="gst_caps_merge_structure_full ()" link="gstreamer-GstCaps.html#gst-caps-merge-structure-full"/>
     <keyword type="function" name="gst_caps_get_size ()" link="gstreamer-GstCaps.html#gst-caps-get-size"/>
     <keyword type="function" name="gst_caps_get_structure ()" link="gstreamer-GstCaps.html#gst-caps-get-structure"/>
+    <keyword type="function" name="gst_caps_get_features ()" link="gstreamer-GstCaps.html#gst-caps-get-features"/>
+    <keyword type="function" name="gst_caps_set_features ()" link="gstreamer-GstCaps.html#gst-caps-set-features"/>
     <keyword type="function" name="gst_caps_set_value ()" link="gstreamer-GstCaps.html#gst-caps-set-value"/>
     <keyword type="function" name="gst_caps_set_simple ()" link="gstreamer-GstCaps.html#gst-caps-set-simple"/>
     <keyword type="function" name="gst_caps_set_simple_valist ()" link="gstreamer-GstCaps.html#gst-caps-set-simple-valist"/>
@@ -315,6 +323,7 @@
     <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"/>
+    <keyword type="function" name="gst_caps_is_subset_structure_full ()" link="gstreamer-GstCaps.html#gst-caps-is-subset-structure-full"/>
     <keyword type="function" name="gst_caps_can_intersect ()" link="gstreamer-GstCaps.html#gst-caps-can-intersect"/>
     <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"/>
@@ -330,6 +339,29 @@
     <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="GstCapsFeatures" link="gstreamer-GstCapsFeatures.html#GstCapsFeatures"/>
+    <keyword type="function" name="gst_caps_features_new ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-new" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_new_empty ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-new-empty" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_new_any ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-new-any" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_new_id ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-new-id" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_new_id_valist ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-new-id-valist" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_new_valist ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-new-valist" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_copy ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-copy" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_free ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-free" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_from_string ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-from-string" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_to_string ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-to-string" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_set_parent_refcount ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-set-parent-refcount" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_is_equal ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-is-equal" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_is_any ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-is-any" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_contains ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-contains" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_contains_id ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-contains-id" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_get_size ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-get-size" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_get_nth ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-get-nth" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_get_nth_id ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-get-nth-id" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_add ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-add" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_add_id ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-add-id" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_remove ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-remove" since="1.2"/>
+    <keyword type="function" name="gst_caps_features_remove_id ()" link="gstreamer-GstCapsFeatures.html#gst-caps-features-remove-id" since="1.2"/>
     <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"/>
@@ -419,6 +451,16 @@
     <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="GstContext" link="gstreamer-GstContext.html#GstContext"/>
+    <keyword type="function" name="gst_context_new ()" link="gstreamer-GstContext.html#gst-context-new" since="1.2"/>
+    <keyword type="function" name="gst_context_ref ()" link="gstreamer-GstContext.html#gst-context-ref"/>
+    <keyword type="function" name="gst_context_unref ()" link="gstreamer-GstContext.html#gst-context-unref"/>
+    <keyword type="function" name="gst_context_copy ()" link="gstreamer-GstContext.html#gst-context-copy"/>
+    <keyword type="function" name="gst_context_get_structure ()" link="gstreamer-GstContext.html#gst-context-get-structure" since="1.2"/>
+    <keyword type="function" name="gst_context_writable_structure ()" link="gstreamer-GstContext.html#gst-context-writable-structure" since="1.2"/>
+    <keyword type="macro" name="gst_context_make_writable()" link="gstreamer-GstContext.html#gst-context-make-writable"/>
+    <keyword type="macro" name="gst_context_is_writable()" link="gstreamer-GstContext.html#gst-context-is-writable"/>
+    <keyword type="function" name="gst_context_replace ()" link="gstreamer-GstContext.html#gst-context-replace"/>
     <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="gst_control_binding_sync_values ()" link="GstControlBinding.html#gst-control-binding-sync-values"/>
@@ -536,6 +578,8 @@
     <keyword type="function" name="gst_element_get_start_time ()" link="GstElement.html#gst-element-get-start-time"/>
     <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_set_context ()" link="GstElement.html#gst-element-set-context"/>
+    <keyword type="function" name="gst_element_get_context ()" link="GstElement.html#gst-element-get-context"/>
     <keyword type="function" name="gst_element_get_factory ()" link="GstElement.html#gst-element-get-factory"/>
     <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"/>
@@ -658,6 +702,8 @@
     <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_parse_stream_start ()" link="gstreamer-GstEvent.html#gst-event-parse-stream-start"/>
+    <keyword type="function" name="gst_event_set_stream_flags ()" link="gstreamer-GstEvent.html#gst-event-set-stream-flags" since="1.2"/>
+    <keyword type="function" name="gst_event_parse_stream_flags ()" link="gstreamer-GstEvent.html#gst-event-parse-stream-flags" since="1.2"/>
     <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"/>
@@ -688,6 +734,8 @@
     <keyword type="function" name="gst_event_parse_toc_select ()" link="gstreamer-GstEvent.html#gst-event-parse-toc-select"/>
     <keyword type="function" name="gst_event_new_segment_done ()" link="gstreamer-GstEvent.html#gst-event-new-segment-done"/>
     <keyword type="function" name="gst_event_parse_segment_done ()" link="gstreamer-GstEvent.html#gst-event-parse-segment-done"/>
+    <keyword type="function" name="gst_event_new_context ()" link="gstreamer-GstEvent.html#gst-event-new-context" since="1.2"/>
+    <keyword type="function" name="gst_event_parse_context ()" link="gstreamer-GstEvent.html#gst-event-parse-context" since="1.2"/>
     <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"/>
@@ -749,6 +797,8 @@
     <keyword type="macro" name="GST_MEMORY_IS_NO_SHARE()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE: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="macro" name="GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-PHYSICALLY-CONTIGUOUS:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_MEMORY_IS_NOT_MAPPABLE()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-NOT-MAPPABLE:CAPS" since="1.2"/>
     <keyword type="struct" name="struct GstMemory" link="gstreamer-GstMemory.html#GstMemory"/>
     <keyword type="enum" name="enum GstMapFlags" link="gstreamer-GstMemory.html#GstMapFlags"/>
     <keyword type="macro" name="GST_MAP_READWRITE" link="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS"/>
@@ -760,6 +810,7 @@
     <keyword type="function" name="GstMemoryShareFunction ()" link="gstreamer-GstMemory.html#GstMemoryShareFunction"/>
     <keyword type="function" name="GstMemoryIsSpanFunction ()" link="gstreamer-GstMemory.html#GstMemoryIsSpanFunction"/>
     <keyword type="function" name="gst_memory_init ()" link="gstreamer-GstMemory.html#gst-memory-init"/>
+    <keyword type="function" name="gst_memory_is_type ()" link="gstreamer-GstMemory.html#gst-memory-is-type" since="1.2"/>
     <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_get_sizes ()" link="gstreamer-GstMemory.html#gst-memory-get-sizes"/>
@@ -767,6 +818,7 @@
     <keyword type="macro" name="gst_memory_lock()" link="gstreamer-GstMemory.html#gst-memory-lock"/>
     <keyword type="macro" name="gst_memory_unlock()" link="gstreamer-GstMemory.html#gst-memory-unlock"/>
     <keyword type="macro" name="gst_memory_is_writable()" link="gstreamer-GstMemory.html#gst-memory-is-writable"/>
+    <keyword type="macro" name="gst_memory_make_writable()" link="gstreamer-GstMemory.html#gst-memory-make-writable"/>
     <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"/>
@@ -855,6 +907,12 @@
     <keyword type="enum" name="enum GstProgressType" link="gstreamer-GstMessage.html#GstProgressType"/>
     <keyword type="function" name="gst_message_new_progress ()" link="gstreamer-GstMessage.html#gst-message-new-progress"/>
     <keyword type="function" name="gst_message_parse_progress ()" link="gstreamer-GstMessage.html#gst-message-parse-progress"/>
+    <keyword type="function" name="gst_message_new_need_context ()" link="gstreamer-GstMessage.html#gst-message-new-need-context"/>
+    <keyword type="function" name="gst_message_add_context_type ()" link="gstreamer-GstMessage.html#gst-message-add-context-type"/>
+    <keyword type="function" name="gst_message_get_n_context_types ()" link="gstreamer-GstMessage.html#gst-message-get-n-context-types"/>
+    <keyword type="function" name="gst_message_parse_nth_context_type ()" link="gstreamer-GstMessage.html#gst-message-parse-nth-context-type"/>
+    <keyword type="function" name="gst_message_new_have_context ()" link="gstreamer-GstMessage.html#gst-message-new-have-context"/>
+    <keyword type="function" name="gst_message_parse_have_context ()" link="gstreamer-GstMessage.html#gst-message-parse-have-context"/>
     <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"/>
@@ -905,7 +963,7 @@
     <keyword type="function" name="gst_mini_object_replace ()" link="gstreamer-GstMiniObject.html#gst-mini-object-replace"/>
     <keyword type="function" name="gst_mini_object_take ()" link="gstreamer-GstMiniObject.html#gst-mini-object-take"/>
     <keyword type="function" name="gst_mini_object_steal ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal"/>
-    <keyword type="" name="controlled properties" link="GstObject.html#idp28825360"/>
+    <keyword type="" name="controlled properties" link="GstObject.html#idp28716320"/>
     <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"/>
@@ -1072,6 +1130,7 @@
     <keyword type="function" name="gst_pad_create_stream_id ()" link="GstPad.html#gst-pad-create-stream-id"/>
     <keyword type="function" name="gst_pad_create_stream_id_printf ()" link="GstPad.html#gst-pad-create-stream-id-printf"/>
     <keyword type="function" name="gst_pad_create_stream_id_printf_valist ()" link="GstPad.html#gst-pad-create-stream-id-printf-valist"/>
+    <keyword type="function" name="gst_pad_get_stream_id ()" link="GstPad.html#gst-pad-get-stream-id" since="1.2"/>
     <keyword type="function" name="GstPadForwardFunction ()" link="GstPad.html#GstPadForwardFunction"/>
     <keyword type="function" name="gst_pad_forward ()" link="GstPad.html#gst-pad-forward"/>
     <keyword type="function" name="gst_pad_chain ()" link="GstPad.html#gst-pad-chain"/>
@@ -1183,6 +1242,7 @@
     <keyword type="function" name="gst_plugin_feature_get_rank ()" link="GstPluginFeature.html#gst-plugin-feature-get-rank"/>
     <keyword type="macro" name="gst_plugin_feature_get_name()" link="GstPluginFeature.html#gst-plugin-feature-get-name"/>
     <keyword type="function" name="gst_plugin_feature_get_plugin ()" link="GstPluginFeature.html#gst-plugin-feature-get-plugin"/>
+    <keyword type="function" name="gst_plugin_feature_get_plugin_name ()" link="GstPluginFeature.html#gst-plugin-feature-get-plugin-name" since="1.2.0"/>
     <keyword type="function" name="gst_plugin_feature_load ()" link="GstPluginFeature.html#gst-plugin-feature-load"/>
     <keyword type="function" name="gst_plugin_feature_list_copy ()" link="GstPluginFeature.html#gst-plugin-feature-list-copy"/>
     <keyword type="function" name="gst_plugin_feature_list_free ()" link="GstPluginFeature.html#gst-plugin-feature-list-free"/>
@@ -1297,10 +1357,12 @@
     <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_remove_nth_allocation_pool ()" link="gstreamer-GstQuery.html#gst-query-remove-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_remove_nth_allocation_param ()" link="gstreamer-GstQuery.html#gst-query-remove-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_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"/>
@@ -1316,6 +1378,12 @@
     <keyword type="function" name="gst_query_has_scheduling_mode ()" link="gstreamer-GstQuery.html#gst-query-has-scheduling-mode"/>
     <keyword type="function" name="gst_query_has_scheduling_mode_with_flags ()" link="gstreamer-GstQuery.html#gst-query-has-scheduling-mode-with-flags"/>
     <keyword type="function" name="gst_query_new_drain ()" link="gstreamer-GstQuery.html#gst-query-new-drain"/>
+    <keyword type="function" name="gst_query_new_context ()" link="gstreamer-GstQuery.html#gst-query-new-context"/>
+    <keyword type="function" name="gst_query_set_context ()" link="gstreamer-GstQuery.html#gst-query-set-context"/>
+    <keyword type="function" name="gst_query_parse_context ()" link="gstreamer-GstQuery.html#gst-query-parse-context"/>
+    <keyword type="function" name="gst_query_add_context_type ()" link="gstreamer-GstQuery.html#gst-query-add-context-type"/>
+    <keyword type="function" name="gst_query_get_n_context_types ()" link="gstreamer-GstQuery.html#gst-query-get-n-context-types"/>
+    <keyword type="function" name="gst_query_parse_nth_context_type ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-context-type"/>
     <keyword type="struct" name="struct GstRegistry" link="GstRegistry.html#GstRegistry-struct"/>
     <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"/>
@@ -1357,6 +1425,7 @@
     <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_new_id ()" link="gstreamer-GstStructure.html#gst-structure-new-id"/>
+    <keyword type="function" name="gst_structure_new_from_string ()" link="gstreamer-GstStructure.html#gst-structure-new-from-string" since="1.2"/>
     <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"/>
@@ -1518,7 +1587,7 @@
     <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"/>
     <keyword type="function" name="gst_tag_list_new_from_string ()" link="gstreamer-GstTagList.html#gst-tag-list-new-from-string"/>
-    <keyword type="macro" name="gst_tag_list_free()" link="gstreamer-GstTagList.html#gst-tag-list-free"/>
+    <keyword type="macro" name="gst_tag_list_free()" link="gstreamer-GstTagList.html#gst-tag-list-free" deprecated=""/>
     <keyword type="function" name="gst_tag_list_get_scope ()" link="gstreamer-GstTagList.html#gst-tag-list-get-scope"/>
     <keyword type="function" name="gst_tag_list_set_scope ()" link="gstreamer-GstTagList.html#gst-tag-list-set-scope"/>
     <keyword type="function" name="gst_tag_list_to_string ()" link="gstreamer-GstTagList.html#gst-tag-list-to-string"/>
@@ -1814,6 +1883,9 @@
     <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"/>
     <keyword type="function" name="gst_value_get_caps ()" link="gstreamer-GstValue.html#gst-value-get-caps"/>
+    <keyword type="macro" name="GST_VALUE_HOLDS_CAPS_FEATURES()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS-FEATURES:CAPS"/>
+    <keyword type="function" name="gst_value_set_caps_features ()" link="gstreamer-GstValue.html#gst-value-set-caps-features"/>
+    <keyword type="function" name="gst_value_get_caps_features ()" link="gstreamer-GstValue.html#gst-value-get-caps-features"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_STRUCTURE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-STRUCTURE:CAPS"/>
     <keyword type="function" name="gst_value_set_structure ()" link="gstreamer-GstValue.html#gst-value-set-structure"/>
     <keyword type="function" name="gst_value_get_structure ()" link="gstreamer-GstValue.html#gst-value-get-structure"/>
@@ -1879,6 +1951,7 @@
     <keyword type="function" name="gst_debug_set_colored ()" link="gstreamer-GstInfo.html#gst-debug-set-colored"/>
     <keyword type="function" name="gst_debug_is_colored ()" link="gstreamer-GstInfo.html#gst-debug-is-colored"/>
     <keyword type="function" name="gst_debug_set_default_threshold ()" link="gstreamer-GstInfo.html#gst-debug-set-default-threshold"/>
+    <keyword type="function" name="gst_debug_set_threshold_from_string ()" link="gstreamer-GstInfo.html#gst-debug-set-threshold-from-string" since="1.2.0"/>
     <keyword type="function" name="gst_debug_get_default_threshold ()" link="gstreamer-GstInfo.html#gst-debug-get-default-threshold"/>
     <keyword type="function" name="gst_debug_set_threshold_for_name ()" link="gstreamer-GstInfo.html#gst-debug-set-threshold-for-name"/>
     <keyword type="function" name="gst_debug_unset_threshold_for_name ()" link="gstreamer-GstInfo.html#gst-debug-unset-threshold-for-name"/>
@@ -1961,6 +2034,7 @@
     <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_COPY_DEEP" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-DEEP: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"/>
@@ -2080,6 +2154,7 @@
     <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_CONTEXT" link="gstreamer-GstEvent.html#GST-EVENT-CONTEXT: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"/>
@@ -2127,6 +2202,8 @@
     <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_PHYSICALLY_CONTIGUOUS" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-PHYSICALLY-CONTIGUOUS:CAPS"/>
+    <keyword type="constant" name="GST_MEMORY_FLAG_NOT_MAPPABLE" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-NOT-MAPPABLE: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"/>
@@ -2161,6 +2238,8 @@
     <keyword type="constant" name="GST_MESSAGE_TOC" link="gstreamer-GstMessage.html#GST-MESSAGE-TOC:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_RESET_TIME" link="gstreamer-GstMessage.html#GST-MESSAGE-RESET-TIME:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_STREAM_START" link="gstreamer-GstMessage.html#GST-MESSAGE-STREAM-START:CAPS"/>
+    <keyword type="constant" name="GST_MESSAGE_NEED_CONTEXT" link="gstreamer-GstMessage.html#GST-MESSAGE-NEED-CONTEXT:CAPS"/>
+    <keyword type="constant" name="GST_MESSAGE_HAVE_CONTEXT" link="gstreamer-GstMessage.html#GST-MESSAGE-HAVE-CONTEXT: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"/>
@@ -2307,12 +2386,14 @@
     <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_CONTEXT" link="gstreamer-GstQuery.html#GST-QUERY-CONTEXT: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_SCHEDULING_FLAG_BANDWIDTH_LIMITED" link="gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-BANDWIDTH-LIMITED: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"/>
diff --git a/docs/gst/html/gstreamer-Gst.html b/docs/gst/html/gstreamer-Gst.html
index 483e628..4aad1b5 100644
--- a/docs/gst/html/gstreamer-Gst.html
+++ b/docs/gst/html/gstreamer-Gst.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Gst</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp8499728"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
+<a name="idp8948784"></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>
@@ -119,7 +119,7 @@
 the next code fragment:
 </p>
 <div class="example">
-<a name="idp7349680"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
+<a name="idp11022576"></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>
@@ -218,12 +218,15 @@
 </p>
 <p>
 WARNING: This function does not work in the same way as corresponding
-functions in other glib-style libraries, such as <a href="http://developer.gnome.org/devel/gtk/gtk3-General.html#gtk-init"><code class="function">gtk_init()</code></a>.  In
+functions in other glib-style libraries, such as <a href="http://developer.gnome.org/gtk2/gtk3-General.html#gtk-init"><code class="function">gtk_init()</code></a>.  In
 particular, unknown command line options cause this function to
 abort program execution.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>argc</code></em> :</span></p></td>
@@ -253,8 +256,11 @@
 for some reason.  If you want your program to fail fatally,
 use <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a> instead.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>argc</code></em> :</span></p></td>
@@ -297,8 +303,11 @@
 threading system as one of the very first things in your program
 (see the example at the beginning of this section).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a pointer to GStreamer's option group. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -314,8 +323,11 @@
 Use this function to check if GStreamer has been initialized with <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a>
 or <a class="link" href="gstreamer-Gst.html#gst-init-check" title="gst_init_check ()"><code class="function">gst_init_check()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE if initialization has been done, FALSE otherwise.</td>
@@ -349,8 +361,11 @@
 <p>
 Gets the version number of the GStreamer library.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
@@ -383,8 +398,11 @@
 This function returns a string that is useful for describing this version
 of GStreamer to the outside world: user agent strings, logging, ...
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a newly allocated string describing this version
@@ -407,8 +425,11 @@
 <a class="link" href="gstreamer-Gst.html#gst-segtrap-set-enabled" title="gst_segtrap_set_enabled ()"><code class="function">gst_segtrap_set_enabled()</code></a> function. This is typically done if the application
 wants to install its own handler without GStreamer interfering.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
@@ -424,8 +445,11 @@
 Applications might want to disable/enable the SIGSEGV handling of
 the GStreamer core. See <a class="link" href="gstreamer-Gst.html#gst-segtrap-is-enabled" title="gst_segtrap_is_enabled ()"><code class="function">gst_segtrap_is_enabled()</code></a> for more information.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
 <td>whether a custom SIGSEGV handler should be installed.</td>
@@ -445,8 +469,11 @@
 <a class="link" href="gstreamer-Gst.html#gst-registry-fork-set-enabled" title="gst_registry_fork_set_enabled ()"><code class="function">gst_registry_fork_set_enabled()</code></a> function, in which case new plugins
 are scanned (and loaded) into the application process.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
@@ -464,8 +491,11 @@
 when rebuilding the registry. See <a class="link" href="gstreamer-Gst.html#gst-registry-fork-is-enabled" title="gst_registry_fork_is_enabled ()"><code class="function">gst_registry_fork_is_enabled()</code></a> for more
 information.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
 <td>whether rebuilding the registry can use a temporary child helper process.</td>
@@ -497,8 +527,11 @@
 <p>
 Note that this function may block for a significant amount of time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
diff --git a/docs/gst/html/gstreamer-GstAtomicQueue.html b/docs/gst/html/gstreamer-GstAtomicQueue.html
index 8c6ca60..c305178 100644
--- a/docs/gst/html/gstreamer-GstAtomicQueue.html
+++ b/docs/gst/html/gstreamer-GstAtomicQueue.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstAtomicQueue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstAllocator.html" title="GstAllocator">
@@ -78,8 +78,11 @@
 Create a new atomic queue instance. <em class="parameter"><code>initial_size</code></em> will be rounded up to the
 nearest power of 2 and used as the initial size of the queue.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>initial_size</code></em> :</span></p></td>
@@ -100,8 +103,11 @@
 <p>
 Increase the refcount of <em class="parameter"><code>queue</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstAtomicQueue.html#GstAtomicQueue" title="GstAtomicQueue"><span class="type">GstAtomicQueue</span></a>
@@ -116,8 +122,11 @@
 <p>
 Unref <em class="parameter"><code>queue</code></em> and free the memory when the refcount reaches 0.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstAtomicQueue.html#GstAtomicQueue" title="GstAtomicQueue"><span class="type">GstAtomicQueue</span></a>
@@ -133,8 +142,11 @@
 <p>
 Append <em class="parameter"><code>data</code></em> to the tail of the queue.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
@@ -155,8 +167,11 @@
 <p>
 Peek the head element of the queue without removing it from the queue.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
@@ -179,8 +194,11 @@
 <p>
 Get the head element of the queue.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
@@ -203,8 +221,11 @@
 <p>
 Get the amount of items in the queue.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstBuffer.html b/docs/gst/html/gstreamer-GstBuffer.html
index 7e4c053..c9231ad 100644
--- a/docs/gst/html/gstreamer-GstBuffer.html
+++ b/docs/gst/html/gstreamer-GstBuffer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -85,7 +85,7 @@
                                                          <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><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-GstBuffer.html#gst-buffer-resize-range" title="gst_buffer_resize_range ()">gst_buffer_resize_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>,
+<a 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-resize-range" title="gst_buffer_resize_range ()">gst_buffer_resize_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>,
                                                          <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
@@ -150,6 +150,11 @@
                                                          <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><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-extract-dup" title="gst_buffer_extract_dup ()">gst_buffer_extract_dup</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#gpointer"><span class="type">gpointer</span></a> *dest</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *dest_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>,
@@ -162,7 +167,7 @@
 #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>,
+<a 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-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><span class="type">gsize</span> offset</code></em>,
@@ -212,7 +217,7 @@
 with a given width, height and bits per plane.
 </p>
 <div class="example">
-<a name="idp12963552"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
+<a name="idp12040000"></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>
@@ -295,7 +300,7 @@
 <p>
 Several flags of the buffer can be set and unset with the
 <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-SET:CAPS" title="GST_BUFFER_FLAG_SET()"><code class="function">GST_BUFFER_FLAG_SET()</code></a> and <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-UNSET:CAPS" title="GST_BUFFER_FLAG_UNSET()"><code class="function">GST_BUFFER_FLAG_UNSET()</code></a> macros. Use
-<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS" title="GST_BUFFER_FLAG_IS_SET()"><code class="function">GST_BUFFER_FLAG_IS_SET()</code></a> to test if a certain <span class="type">GstBufferFlag</span> is set.
+<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS" title="GST_BUFFER_FLAG_IS_SET()"><code class="function">GST_BUFFER_FLAG_IS_SET()</code></a> to test if a certain <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBufferFlag"><span class="type">GstBufferFlag</span></a> is set.
 </p>
 <p>
 Buffers can be efficiently merged into a larger buffer with
@@ -343,8 +348,11 @@
 The structure of a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>. Use the associated macros to access the public
 variables.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstBuffer.mini-object"></a>mini_object</code></em>;</span></p></td>
@@ -408,8 +416,11 @@
 <p>
 A set of buffer flags used to describe properties of a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-BUFFER-FLAG-LIVE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_FLAG_LIVE</code></span></p></td>
@@ -490,10 +501,13 @@
 <pre class="programlisting">#define GST_BUFFER_FLAGS(buf)                   GST_MINI_OBJECT_FLAGS(buf)
 </pre>
 <p>
-A flags word containing <span class="type">GstBufferFlag</span> flags set on this buffer.
+A flags word containing <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBufferFlag"><span class="type">GstBufferFlag</span></a> flags set on this buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -508,8 +522,11 @@
 <p>
 Gives the status of a specific flag on a buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -517,7 +534,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
-<td>the <span class="type">GstBufferFlag</span> to check.</td>
+<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBufferFlag"><span class="type">GstBufferFlag</span></a> to check.</td>
 </tr>
 </tbody>
 </table></div>
@@ -530,8 +547,11 @@
 <p>
 Sets a buffer flag on a buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -539,7 +559,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
-<td>the <span class="type">GstBufferFlag</span> to set.</td>
+<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBufferFlag"><span class="type">GstBufferFlag</span></a> to set.</td>
 </tr>
 </tbody>
 </table></div>
@@ -552,8 +572,11 @@
 <p>
 Clears a buffer flag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -561,7 +584,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
-<td>the <span class="type">GstBufferFlag</span> to clear.</td>
+<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBufferFlag"><span class="type">GstBufferFlag</span></a> to clear.</td>
 </tr>
 </tbody>
 </table></div>
@@ -577,8 +600,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -596,8 +622,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -613,8 +642,11 @@
 The duration 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 duration is unknown.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -629,8 +661,11 @@
 <p>
 The offset in the source file of the beginning of this buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -645,8 +680,11 @@
 <p>
 The offset in the source file of the end of this buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -670,8 +708,11 @@
 <p>
 Tests if the duration is known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -687,8 +728,11 @@
 <p>
 Tests if the pts is known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -704,8 +748,11 @@
 <p>
 Tests if the dts is known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -721,8 +768,11 @@
 <p>
 Tests if the start offset is known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -738,8 +788,11 @@
 <p>
 Tests if the end offset is known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -755,8 +808,11 @@
 <p>
 Tests if the buffer marks a discontinuity in the stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -774,8 +830,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -803,8 +862,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
@@ -842,8 +904,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -885,8 +950,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
@@ -943,8 +1011,11 @@
 GstBuffer instances can potentially increase the number
 of memcpy operations in a pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -967,8 +1038,11 @@
 Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
 with the associated metadata and memory will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -992,8 +1066,11 @@
 memory block.  <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>maxsize</code></em> can be used to resize the
 buffer memory blocks 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1023,8 +1100,11 @@
 <p>
 Get the total size of the memory blocks in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1056,8 +1136,11 @@
 <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>maxsize</code></em> can be used to resize the buffer memory blocks with
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize-range" title="gst_buffer_resize_range ()"><code class="function">gst_buffer_resize_range()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1091,7 +1174,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-resize-range"></a><h3>gst_buffer_resize_range ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_resize_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>,
+<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_resize_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>,
                                                          <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
@@ -1100,8 +1183,11 @@
 Set the total size of the <em class="parameter"><code>length</code></em> memory blocks starting at <em class="parameter"><code>idx</code></em> in
 <em class="parameter"><code>buffer</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1123,6 +1209,11 @@
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
 <td>the new size or -1 to just adjust the offset</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 resizing succeeded, <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>
@@ -1135,8 +1226,11 @@
 <p>
 Set the offset and total size of the memory blocks in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1161,8 +1255,11 @@
 <p>
 Set the total size of the memory blocks in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1190,8 +1287,11 @@
 <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-writable" title="gst_memory_is_writable()"><code class="function">gst_memory_is_writable()</code></a> can be used to check if <em class="parameter"><code>buffer</code></em> is the sole owner
 of the returned memory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1214,10 +1314,14 @@
 <a name="gst-buffer-n-memory"></a><h3>gst_buffer_n_memory ()</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_n_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>);</pre>
 <p>
-Get the amount of memory blocks that this buffer has.
+Get the amount of memory blocks that this buffer has. This amount is never
+larger than what <code class="function">gst_buffer_get_max_memory()</code> returns.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1241,8 +1345,16 @@
 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">
+<p>
+Only <code class="function">gst_buffer_get_max_memory()</code> can be added to a buffer. If more memory is
+added, existing memory blocks will automatically be merged to make room for
+the new memory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1277,8 +1389,11 @@
 <p>
 <em class="parameter"><code>buffer</code></em> should be writable.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1313,8 +1428,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1349,8 +1467,11 @@
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1390,8 +1511,11 @@
 <p>
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1438,8 +1562,15 @@
 Prepend the memory block <em class="parameter"><code>mem</code></em> to <em class="parameter"><code>buffer</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">
+<p>
+This function is identical to <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> with an index of 0.
+See <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> for more details.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1462,8 +1593,15 @@
 Append the memory block <em class="parameter"><code>mem</code></em> to <em class="parameter"><code>buffer</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">
+<p>
+This function is identical to <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> with an index of -1.
+See <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> for more details.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1486,8 +1624,11 @@
 <p>
 Replaces the memory block at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em> with <em class="parameter"><code>mem</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1513,8 +1654,11 @@
 <p>
 Replaces all memory in <em class="parameter"><code>buffer</code></em> with <em class="parameter"><code>mem</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1536,8 +1680,11 @@
 <p>
 Get the memory block at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1564,8 +1711,11 @@
 Get all the memory block in <em class="parameter"><code>buffer</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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1588,8 +1738,11 @@
 <p>
 Remove the memory block in <em class="parameter"><code>b</code></em> at index <em class="parameter"><code>i</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1609,8 +1762,11 @@
 <p>
 Remove all the memory blocks in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1641,8 +1797,11 @@
 The memory in <em class="parameter"><code>info</code></em> should be unmapped with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()"><code class="function">gst_buffer_unmap()</code></a> after
 usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1691,8 +1850,11 @@
 <p>
 The memory in <em class="parameter"><code>info</code></em> should be unmapped with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()"><code class="function">gst_buffer_unmap()</code></a> after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1732,8 +1894,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1757,8 +1922,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1795,8 +1963,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1824,6 +1995,52 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-buffer-extract-dup"></a><h3>gst_buffer_extract_dup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_extract_dup              (<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#gpointer"><span class="type">gpointer</span></a> *dest</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *dest_size</code></em>);</pre>
+<p>
+Extracts a copy of at most <em class="parameter"><code>size</code></em> bytes the data at <em class="parameter"><code>offset</code></em> into a <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a>.
+<em class="parameter"><code>dest</code></em> must be freed using <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 to extract</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size to extract</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
+<td>A pointer where
+the destination array will be written. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=dest_size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<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>dest_size</code></em> :</span></p></td>
+<td>A location where the size of <em class="parameter"><code>dest</code></em> can be written. <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 3.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-buffer-fill"></a><h3>gst_buffer_fill ()</h3>
 <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>,
@@ -1832,8 +2049,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1870,8 +2090,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -1907,15 +2130,19 @@
   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)
+  GST_BUFFER_COPY_MERGE          = (1 &lt;&lt; 4),
+  GST_BUFFER_COPY_DEEP           = (1 &lt;&lt; 5)
 } 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1930,25 +2157,33 @@
 <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
+  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
+  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>flag indicating that buffer memory should be reffed
+  and appended to already existing memory. Unless the memory is marked as
+  NO_SHARE, no actual copy of the memory is made but it is simply reffed.
+  Add <em class="parameter"><code>GST_BUFFER_COPY_DEEP</code></em> to force a real copy.
 </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
+  merged
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-DEEP:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_DEEP</code></span></p></td>
+<td>flag indicating that memory should always be
+  copied instead of reffed (Since 1.2)
 </td>
 </tr>
 </tbody>
@@ -1981,8 +2216,11 @@
 Create a copy of the given buffer. This will also make a newly allocated
 copy of the data the source buffer contains.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1999,7 +2237,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-copy-into"></a><h3>gst_buffer_copy_into ()</h3>
-<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>,
+<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_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><span class="type">gsize</span> offset</code></em>,
@@ -2014,8 +2252,11 @@
 <p>
 <em class="parameter"><code>flags</code></em> indicate which fields will be copied.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -2039,6 +2280,11 @@
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
 <td>total size to copy. If -1, all data is copied.</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 copying succeeded, <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>
@@ -2062,8 +2308,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -2102,8 +2351,11 @@
 It is only safe to change buffer metadata when the current reference is
 writable, i.e. nobody can see the modifications you will make.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -2121,8 +2373,11 @@
 already writable, this will simply return the same buffer. A copy will
 otherwise be made using <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy" title="gst_buffer_copy ()"><code class="function">gst_buffer_copy()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -2152,8 +2407,11 @@
 <p>
 Either <em class="parameter"><code>nbuf</code></em> or the <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> pointed to by <em class="parameter"><code>obuf</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obuf</code></em> :</span></p></td>
@@ -2183,8 +2441,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
@@ -2217,8 +2478,11 @@
 contain a concatenation of the memory of <em class="parameter"><code>buf1</code></em> and the requested region of
 <em class="parameter"><code>buf2</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
@@ -2258,8 +2522,11 @@
 Get the metadata for <em class="parameter"><code>api</code></em> on buffer. When there is no such
 metadata, NULL is returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -2287,8 +2554,11 @@
 <p>
 Add metadata for <em class="parameter"><code>info</code></em> to <em class="parameter"><code>buffer</code></em> using the parameters in <em class="parameter"><code>params</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -2321,8 +2591,11 @@
 <p>
 Remove the metadata for <em class="parameter"><code>meta</code></em> on <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -2355,8 +2628,11 @@
 <p>
 <em class="parameter"><code>state</code></em> will be updated with an opage state pointer
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -2396,8 +2672,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -2436,8 +2715,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstBufferList.html b/docs/gst/html/gstreamer-GstBufferList.html
index 9175146..5863c56 100644
--- a/docs/gst/html/gstreamer-GstBufferList.html
+++ b/docs/gst/html/gstreamer-GstBufferList.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBufferList</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -105,8 +105,11 @@
 <p>
 Free-function: gst_buffer_list_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the new <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a>. <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-unref" title="gst_buffer_list_unref ()"><code class="function">gst_buffer_list_unref()</code></a>
@@ -127,8 +130,11 @@
 <p>
 Free-function: gst_buffer_list_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
@@ -150,8 +156,11 @@
 <p>
 Returns the number of buffers in <em class="parameter"><code>list</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -173,8 +182,11 @@
 <p>
 Append <em class="parameter"><code>b</code></em> at the end of <em class="parameter"><code>l</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>l</code></em> :</span></p></td>
@@ -202,8 +214,11 @@
 <p>
 A -1 value for <em class="parameter"><code>idx</code></em> will append the buffer at the end.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -232,8 +247,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -264,8 +282,11 @@
 additional references to GstBufferList instances can potentially increase
 the number of memcpy operations in a pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -289,8 +310,11 @@
 Decreases the refcount of the buffer list. If the refcount reaches 0, the
 buffer list will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -307,8 +331,11 @@
 allocated copy of the source list with copies of buffer pointers. The
 refcount of buffers pointed to will be increased by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -331,8 +358,11 @@
 <p>
 Tests if you can safely add buffers and groups into a buffer list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -350,8 +380,11 @@
 list is already writable, this will simply return the same buffer list. A
 copy will otherwise be made using <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-copy" title="gst_buffer_list_copy ()"><code class="function">gst_buffer_list_copy()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -387,8 +420,11 @@
 to <em class="parameter"><code>buffer</code></em>. This function is responsible for unreffing the old buffer when
 removing or modifying.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -426,8 +462,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -461,8 +500,11 @@
 <p>
 Get the buffer at <em class="parameter"><code>idx</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstBufferPool.html b/docs/gst/html/gstreamer-GstBufferPool.html
index ddf2a95..5a00ca9 100644
--- a/docs/gst/html/gstreamer-GstBufferPool.html
+++ b/docs/gst/html/gstreamer-GstBufferPool.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBufferPool</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -153,8 +153,11 @@
 The structure of a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>. Use the associated macros to access the public
 variables.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> <em class="structfield"><code><a name="GstBufferPool.object"></a>object</code></em>;</span></p></td>
 <td>the parent structure</td>
@@ -186,8 +189,11 @@
 <p>
 The GstBufferPool class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstBufferPoolClass.object-class"></a>object_class</code></em>;</span></p></td>
@@ -256,8 +262,11 @@
 Check if the bufferpool is flushing. Subclasses might want to check the
 state of the pool in the acquire function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
 <td>a GstBufferPool</td>
@@ -271,8 +280,11 @@
 <p>
 Creates a new <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -291,8 +303,11 @@
 <p>
 Get the configuration values from <em class="parameter"><code>config</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -338,8 +353,11 @@
 <p>
 Configure <em class="parameter"><code>config</code></em> with the given parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -374,8 +392,11 @@
 <p>
 Get the allocator and params from <em class="parameter"><code>config</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -417,8 +438,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -444,8 +468,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -470,8 +497,11 @@
 <p>
 The supported options by <em class="parameter"><code>pool</code></em> 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -493,8 +523,11 @@
 Parse an available <em class="parameter"><code>config</code></em> and get the option
 at <em class="parameter"><code>index</code></em> of the options API array.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -519,8 +552,11 @@
 <p>
 Check if <em class="parameter"><code>config</code></em> contains <em class="parameter"><code>option</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -546,8 +582,11 @@
 <em class="parameter"><code>pool</code></em>. An option would typically 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -570,8 +609,11 @@
 <p>
 Check if the bufferpool supports <em class="parameter"><code>option</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -598,8 +640,11 @@
 can either be modified and used for the <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> call
 or it must be freed after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -639,8 +684,11 @@
 <p>
 This function takes ownership of <em class="parameter"><code>config</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -677,8 +725,11 @@
 buffers. When there are outstanding buffers, they will be freed as soon as
 they are all returned to the pool.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -706,8 +757,11 @@
 Check if <em class="parameter"><code>pool</code></em> is active. A pool can be activated with the
 <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> call.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -736,8 +790,11 @@
 <p>
 Additional flags to control the allocation of a buffer
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -789,8 +846,11 @@
 implementations can use this extra information to decide what buffer to
 return.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -825,8 +885,11 @@
 <p>
 <em class="parameter"><code>params</code></em> can be NULL or contain optional parameters to influence the allocation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
@@ -863,8 +926,11 @@
 This function is usually called automatically when the last ref on <em class="parameter"><code>buffer</code></em>
 disappears.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstCaps.html b/docs/gst/html/gstreamer-GstCaps.html
index 4bc35c9..831fc39 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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="gstreamer-GstSample.html" title="GstSample">
+<link rel="next" href="gstreamer-GstCapsFeatures.html" title="GstCapsFeatures">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <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-GstSample.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-GstCapsFeatures.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>
@@ -81,15 +81,26 @@
                                                          <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>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-append-structure-full" title="gst_caps_append_structure_full ()">gst_caps_append_structure_full</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>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-remove-structure" title="gst_caps_remove_structure ()">gst_caps_remove_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> 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>);
 <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 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-full" title="gst_caps_merge_structure_full ()">gst_caps_merge_structure_full</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>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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>,
                                                          <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 class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCaps.html#gst-caps-get-features" title="gst_caps_get_features ()">gst_caps_get_features</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>,
+                                                         <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-set-features" title="gst_caps_set_features ()">gst_caps_set_features</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>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-set-value" title="gst_caps_set_value ()">gst_caps_set_value</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>const <span class="type">char</span> *field</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>);
@@ -114,6 +125,9 @@
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *superset</code></em>);
 <a 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-structure" title="gst_caps_is_subset_structure ()">gst_caps_is_subset_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>,
                                                          <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-is-subset-structure-full" title="gst_caps_is_subset_structure_full ()">gst_caps_is_subset_structure_full</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>,
+                                                         <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>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
 <a 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><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
@@ -160,7 +174,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp17106768"></a><p class="title"><b>Example 4. Creating caps</b></p>
+<a name="idp16071872"></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>
@@ -213,8 +227,11 @@
 <p>
 Object describing media types.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstCaps.mini-object"></a>mini_object</code></em>;</span></p></td>
 <td>the parent type</td>
@@ -234,8 +251,11 @@
 used in conjunction with <a class="link" href="gstreamer-GstCaps.html#GST-STATIC-CAPS" title="GST_STATIC_CAPS()"><code class="function">GST_STATIC_CAPS()</code></a> and <a class="link" href="gstreamer-GstCaps.html#gst-static-caps-get" title="gst_static_caps_get ()"><code class="function">gst_static_caps_get()</code></a> to
 instantiate a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -294,8 +314,11 @@
 Example: If caps1 is [A, B, C] and caps2 is [E, B, D, A], the result
 would be [A, B], maintaining the first caps priority on the intersection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CAPS-INTERSECT-ZIG-ZAG:CAPS"></a><span class="term"><code class="literal">GST_CAPS_INTERSECT_ZIG_ZAG</code></span></p></td>
@@ -320,8 +343,11 @@
 <p>
 Extra flags for a caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <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
@@ -360,8 +386,11 @@
 <p>
 Get access to the reference count field of the caps
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -377,8 +406,11 @@
 <p>
 Get the reference count value of the caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -415,8 +447,11 @@
 Convenience macro that checks if the number of structures in the given caps
 is exactly one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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> instance to check</td>
@@ -431,8 +466,11 @@
 Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> static caps from an input string.
 This can be used in pad templates.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
 <td>the string describing the caps</td>
@@ -447,8 +485,11 @@
 <p>
 A flags word containing <a class="link" href="gstreamer-GstCaps.html#GstCapsFlags" title="enum GstCapsFlags"><span class="type">GstCapsFlags</span></a> flags set on this caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -463,8 +504,11 @@
 <p>
 Gives the status of a specific flag on a caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -485,8 +529,11 @@
 <p>
 Sets a caps flag on a caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -507,8 +554,11 @@
 <p>
 Clears a caps flag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -531,8 +581,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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>
@@ -549,8 +602,11 @@
 <em class="parameter"><code>media_type</code></em>.
 Caller is responsible for unreffing the returned caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media_type</code></em> :</span></p></td>
@@ -572,8 +628,11 @@
 Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that indicates that it is compatible with
 any media format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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>
@@ -593,8 +652,11 @@
 as <a class="link" href="gstreamer-GstStructure.html#gst-structure-new" title="gst_structure_new ()"><code class="function">gst_structure_new()</code></a>.
 Caller is responsible for unreffing the returned caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media_type</code></em> :</span></p></td>
@@ -626,8 +688,11 @@
 arguments.  The list must be NULL-terminated.  The structures
 are not copied; the returned <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> owns the structures.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>struct1</code></em> :</span></p></td>
@@ -655,8 +720,11 @@
 arguments.  The list must be NULL-terminated.  The structures
 are not copied; the returned <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> owns the structures.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -683,8 +751,11 @@
 Tests if you can safely modify <em class="parameter"><code>caps</code></em>. It is only safe to modify caps when
 there is only one owner of the caps - ie, the object is writable.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -708,8 +779,11 @@
 <p>
 When you are finished with the caps, call <a class="link" href="gstreamer-GstCaps.html#gst-caps-unref" title="gst_caps_unref ()"><code class="function">gst_caps_unref()</code></a> on it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -732,8 +806,11 @@
 Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> and appends a copy of the nth structure
 contained in <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -758,8 +835,11 @@
 <p>
 Converts a <a class="link" href="gstreamer-GstCaps.html#GstStaticCaps" title="struct GstStaticCaps"><span class="type">GstStaticCaps</span></a> to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>static_caps</code></em> :</span></p></td>
@@ -782,8 +862,11 @@
 <p>
 Clean up the cached caps contained in <em class="parameter"><code>static_caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 clean</td>
@@ -800,8 +883,11 @@
 <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. If either caps is ANY, the resulting caps will be ANY.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -826,8 +912,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -856,8 +945,11 @@
 Appends <em class="parameter"><code>structure</code></em> to <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -873,6 +965,39 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-append-structure-full"></a><h3>gst_caps_append_structure_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_append_structure_full      (<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>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Appends <em class="parameter"><code>structure</code></em> with <em class="parameter"><code>features</code></em> to <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>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 be appended to</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 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>features</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> to append. <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>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-remove-structure"></a><h3>gst_caps_remove_structure ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_remove_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> idx</code></em>);</pre>
@@ -880,8 +1005,11 @@
 removes the stucture with the given index from the list of structures
 contained in <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -903,8 +1031,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -931,8 +1062,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -954,13 +1088,54 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-merge-structure-full"></a><h3>gst_caps_merge_structure_full ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_merge_structure_full       (<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>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Appends <em class="parameter"><code>structure</code></em> with <em class="parameter"><code>features</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 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"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> to merge. <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>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>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-get-size"></a><h3>gst_caps_get_size ()</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_caps_get_size                   (<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>
 <p>
 Gets the number of structures contained in <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -997,8 +1172,11 @@
 You do not need to free or unref the structure returned, it
 belongs to the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1020,6 +1198,85 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-get-features"></a><h3>gst_caps_get_features ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_get_features               (<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> index</code></em>);</pre>
+<p>
+Finds the features in <em class="parameter"><code>caps</code></em> that has the index <em class="parameter"><code>index</code></em>, and
+returns it.
+</p>
+<p>
+WARNING: This function takes a const GstCaps *, but returns a
+non-const GstCapsFeatures *.  This is for programming convenience --
+the caller should be aware that structures inside a constant
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> should not be modified. However, if you know the caps
+are writable, either because you have just copied them or made
+them writable with <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>, you may modify the
+features returned in the usual way, e.g. with functions like
+<a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-add" title="gst_caps_features_add ()"><code class="function">gst_caps_features_add()</code></a>.
+</p>
+<p>
+You do not need to free or unref the structure returned, it
+belongs to the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>the index of the structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to the <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> corresponding
+to <em class="parameter"><code>index</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-caps-set-features"></a><h3>gst_caps_set_features ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_set_features               (<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>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Sets the <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> <em class="parameter"><code>features</code></em> for the structure at <em class="parameter"><code>index</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>the index of the structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>the <span class="type">GstFeatures</span> to set. <span class="annotation">[<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>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-set-value"></a><h3>gst_caps_set_value ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_set_value                  (<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 <span class="type">char</span> *field</code></em>,
@@ -1029,8 +1286,11 @@
 This is a convenience function for calling <a class="link" href="gstreamer-GstStructure.html#gst-structure-set-value" title="gst_structure_set_value ()"><code class="function">gst_structure_set_value()</code></a> on
 all structures of <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1057,8 +1317,11 @@
 Sets fields in a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.  The arguments must be passed in the same
 manner as <a class="link" href="gstreamer-GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>, and be NULL-terminated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1085,8 +1348,11 @@
 Sets fields in a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.  The arguments must be passed in the same
 manner as <a class="link" href="gstreamer-GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>, and be NULL-terminated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1110,8 +1376,11 @@
 <p>
 Determines if <em class="parameter"><code>caps</code></em> represents any media format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1131,8 +1400,11 @@
 <p>
 Determines if <em class="parameter"><code>caps</code></em> represents no media formats.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1154,8 +1426,11 @@
 one structure, and each field in the structure describes a fixed type.
 Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1176,13 +1451,11 @@
 <p>
 Checks if the given caps represent the same set of caps.
 </p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1210,8 +1483,11 @@
 Tests if two <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> are equal.  This function only works on fixed
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1236,8 +1512,11 @@
 <p>
 Checks if the given caps are exactly the same set of caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1266,8 +1545,11 @@
 every media format that is in the first is also contained in the
 second.  That is, <em class="parameter"><code>caps1</code></em> is a subset of <em class="parameter"><code>caps2</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1292,13 +1574,11 @@
 <p>
 Checks if all caps represented by <em class="parameter"><code>subset</code></em> are also represented by <em class="parameter"><code>superset</code></em>.
 </p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>subset</code></em> :</span></p></td>
@@ -1328,8 +1608,11 @@
 Checks if <em class="parameter"><code>structure</code></em> is a subset of <em class="parameter"><code>caps</code></em>. See <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-subset" title="gst_caps_is_subset ()"><code class="function">gst_caps_is_subset()</code></a>
 for more information.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1352,6 +1635,46 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-is-subset-structure-full"></a><h3>gst_caps_is_subset_structure_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_caps_is_subset_structure_full   (<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>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Checks if <em class="parameter"><code>structure</code></em> is a subset of <em class="parameter"><code>caps</code></em>. See <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-subset" title="gst_caps_is_subset ()"><code class="function">gst_caps_is_subset()</code></a>
+for more information.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
+<td>a potential <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> subset of <em class="parameter"><code>caps</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> for <em class="parameter"><code>structure</code></em>. <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>
+<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>structure</code></em> is a subset of <em class="parameter"><code>caps</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-can-intersect"></a><h3>gst_caps_can_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_caps_can_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>
@@ -1359,8 +1682,11 @@
 Tries intersecting <em class="parameter"><code>caps1</code></em> and <em class="parameter"><code>caps2</code></em> and reports whether the result would not
 be empty
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1387,8 +1713,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1417,8 +1746,11 @@
 to both <em class="parameter"><code>caps1</code></em> and <em class="parameter"><code>caps2</code></em>, the order is defined by the <a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a>
 used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -1452,8 +1784,11 @@
 <p>
 This function takes ownership of <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1481,8 +1816,11 @@
 <p>
 This method does not preserve the original order of <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1510,8 +1848,11 @@
 <p>
 Either <em class="parameter"><code>ncaps</code></em> or the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> pointed to by <em class="parameter"><code>ocaps</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_caps</code></em> :</span></p></td>
@@ -1543,8 +1884,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_caps</code></em> :</span></p></td>
@@ -1591,8 +1935,11 @@
 <p>
 This prints the caps in human readable form.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1614,8 +1961,11 @@
 <p>
 Converts <em class="parameter"><code>caps</code></em> from a string representation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
@@ -1643,8 +1993,11 @@
 are included on one caps and omitted on the other.</div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>minuend</code></em> :</span></p></td>
@@ -1683,8 +2036,11 @@
 that it returns. Don't access the argument after calling this function. See
 also: <a class="link" href="gstreamer-GstCaps.html#gst-caps-ref" title="gst_caps_ref ()"><code class="function">gst_caps_ref()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1708,8 +2064,11 @@
 Discard all but the first structure from <em class="parameter"><code>caps</code></em>. Useful when
 fixating.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1733,8 +2092,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1764,8 +2126,11 @@
 implicitly by e.g. <a class="link" href="gstreamer-GstCaps.html#gst-caps-new-simple" title="gst_caps_new_simple ()"><code class="function">gst_caps_new_simple()</code></a>, or via taking one explicitly with
 this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1786,8 +2151,11 @@
 Unref a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> and and free all its structures and the
 structures' values when the refcount reaches 0.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
diff --git a/docs/gst/html/gstreamer-GstCapsFeatures.html b/docs/gst/html/gstreamer-GstCapsFeatures.html
new file mode 100644
index 0000000..89a3144
--- /dev/null
+++ b/docs/gst/html/gstreamer-GstCapsFeatures.html
@@ -0,0 +1,783 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstCapsFeatures</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="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>
+<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="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-GstCapsFeatures.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gstreamer-GstCapsFeatures.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gstreamer-GstCapsFeatures"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-GstCapsFeatures.top_of_page"></a>GstCapsFeatures</span></h2>
+<p>GstCapsFeatures — A set of features in caps</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gstreamer-GstCapsFeatures.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+                    <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures">GstCapsFeatures</a>;
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new" title="gst_caps_features_new ()">gst_caps_features_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> *feature1</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-empty" title="gst_caps_features_new_empty ()">gst_caps_features_new_empty</a>         (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-any" title="gst_caps_features_new_any ()">gst_caps_features_new_any</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-id" title="gst_caps_features_new_id ()">gst_caps_features_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> feature1</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-id-valist" title="gst_caps_features_new_id_valist ()">gst_caps_features_new_id_valist</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature1</code></em>,
+                                                         <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-valist" title="gst_caps_features_new_valist ()">gst_caps_features_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> *feature1</code></em>,
+                                                         <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-copy" title="gst_caps_features_copy ()">gst_caps_features_copy</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-free" title="gst_caps_features_free ()">gst_caps_features_free</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-from-string" title="gst_caps_features_from_string ()">gst_caps_features_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> *features</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-GstCapsFeatures.html#gst-caps-features-to-string" title="gst_caps_features_to_string ()">gst_caps_features_to_string</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-set-parent-refcount" title="gst_caps_features_set_parent_refcount ()">gst_caps_features_set_parent_refcount</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> *refcount</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-is-equal" title="gst_caps_features_is_equal ()">gst_caps_features_is_equal</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features2</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-is-any" title="gst_caps_features_is_any ()">gst_caps_features_is_any</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-contains" title="gst_caps_features_contains ()">gst_caps_features_contains</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em 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</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-contains-id" title="gst_caps_features_contains_id ()">gst_caps_features_contains_id</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> feature</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-GstCapsFeatures.html#gst-caps-features-get-size" title="gst_caps_features_get_size ()">gst_caps_features_get_size</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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-GstCapsFeatures.html#gst-caps-features-get-nth" title="gst_caps_features_get_nth ()">gst_caps_features_get_nth</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> i</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-GstCapsFeatures.html#gst-caps-features-get-nth-id" title="gst_caps_features_get_nth_id ()">gst_caps_features_get_nth_id</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> i</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-add" title="gst_caps_features_add ()">gst_caps_features_add</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em 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</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-add-id" title="gst_caps_features_add_id ()">gst_caps_features_add_id</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> feature</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-remove" title="gst_caps_features_remove ()">gst_caps_features_remove</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em 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</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-remove-id" title="gst_caps_features_remove_id ()">gst_caps_features_remove_id</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> feature</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstCapsFeatures.description"></a><h2>Description</h2>
+<p>
+<a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> can optionally be set on a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to add requirements
+for additional features for a specific <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>. Caps structures with
+the same name but with a non-equal set of caps features are not compatible.
+If a pad supports multiple sets of features it has to add multiple equal
+structures with different feature sets to the caps.
+</p>
+<p>
+Empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> are equivalent with the <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> that only
+contain <span class="type">GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY</span>. ANY <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> as
+created by <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-new-any" title="gst_caps_features_new_any ()"><code class="function">gst_caps_features_new_any()</code></a> are equal to any other <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>
+and can be used to specify that any <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> would be supported, e.g.
+for elements that don't touch buffer memory. <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> with ANY <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>
+are considered non-fixed and during negotiation some <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> have
+to be selected.
+</p>
+<p>
+Examples for caps features would be the requirement of a specific <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
+types or the requirement of having a specific <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> on the buffer. Features
+are given as a string of the format "memory:GstMemoryTypeName" or
+"meta:GstMetaAPIName".
+</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstCapsFeatures.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstCapsFeatures"></a><h3>GstCapsFeatures</h3>
+<pre class="programlisting">typedef struct _GstCapsFeatures GstCapsFeatures;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-new"></a><h3>gst_caps_features_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_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> *feature1</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> with the given features.
+The last argument must be NULL.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature1</code></em> :</span></p></td>
+<td>name of first feature to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
+<td>additional features</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-new-empty"></a><h3>gst_caps_features_new_empty ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_new_empty         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a new, empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-new-any"></a><h3>gst_caps_features_new_any ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_new_any           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a new, ANY <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>. This will be equal
+to any other <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> but caps with these are
+unfixed.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, ANY <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-new-id"></a><h3>gst_caps_features_new_id ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_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> feature1</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> with the given features.
+The last argument must be 0.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature1</code></em> :</span></p></td>
+<td>name of first feature to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
+<td>additional features</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-new-id-valist"></a><h3>gst_caps_features_new_id_valist ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_new_id_valist     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature1</code></em>,
+                                                         <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> with the given features.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature1</code></em> :</span></p></td>
+<td>name of first feature to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>varargs</code></em> :</span></p></td>
+<td>variable argument list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-new-valist"></a><h3>gst_caps_features_new_valist ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_new_valist        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *feature1</code></em>,
+                                                         <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> with the given features.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature1</code></em> :</span></p></td>
+<td>name of first feature to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>varargs</code></em> :</span></p></td>
+<td>variable argument list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, empty <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-copy"></a><h3>gst_caps_features_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_copy              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Duplicates a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> and all its values.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> to duplicate</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-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-free"></a><h3>gst_caps_features_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_features_free              (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Frees a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> and all its values. The caps features must not
+have a parent when this function is called.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> to free. <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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-from-string"></a><h3>gst_caps_features_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> *   gst_caps_features_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> *features</code></em>);</pre>
+<p>
+Creates a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> from a string representation.
+</p>
+<p>
+Free-function: gst_caps_features_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a string representation of a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> or NULL when the string could
+not be parsed. Free with <a class="link" href="gstreamer-GstCapsFeatures.html#gst-caps-features-free" title="gst_caps_features_free ()"><code class="function">gst_caps_features_free()</code></a> 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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-to-string"></a><h3>gst_caps_features_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_caps_features_to_string         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Converts <em class="parameter"><code>features</code></em> to a human-readable string representation.
+</p>
+<p>
+For debugging purposes its easier to do something like this:
+</p>
+<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;features is %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> features<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+This prints the features in human readble form.
+</p>
+<p>
+Free-function: g_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to string allocated by <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-malloc"><code class="function">g_malloc()</code></a>.
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-set-parent-refcount"></a><h3>gst_caps_features_set_parent_refcount ()</h3>
+<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_features_set_parent_refcount
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> *refcount</code></em>);</pre>
+<p>
+Sets the parent_refcount field of <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>. This field is used to
+determine whether a caps features is mutable or not. This function should only be
+called by code implementing parent objects of <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>, as described in
+the MT Refcounting section of the design documents.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>refcount</code></em> :</span></p></td>
+<td>a pointer to the parent's refcount. <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>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the parent refcount could be set.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-is-equal"></a><h3>gst_caps_features_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_caps_features_is_equal          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features2</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>features1</code></em> and <em class="parameter"><code>features2</code></em> are equal.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features1</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features2</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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"><code class="literal">TRUE</code></a> if <em class="parameter"><code>features1</code></em> and <em class="parameter"><code>features2</code></em> are equal.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-is-any"></a><h3>gst_caps_features_is_any ()</h3>
+<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_features_is_any            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>features</code></em> is <code class="literal">GST_CAPS_FEATURES_ANY</code>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</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"><code class="literal">TRUE</code></a> if <em class="parameter"><code>features</code></em> is <code class="literal">GST_CAPS_FEATURES_ANY</code>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-contains"></a><h3>gst_caps_features_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_caps_features_contains          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em 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</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>features</code></em> contains <em class="parameter"><code>feature</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature</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>features</code></em> contains <em class="parameter"><code>feature</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-contains-id"></a><h3>gst_caps_features_contains_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_caps_features_contains_id       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> feature</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>features</code></em> contains <em class="parameter"><code>feature</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature</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>features</code></em> contains <em class="parameter"><code>feature</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-get-size"></a><h3>gst_caps_features_get_size ()</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_caps_features_get_size          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Returns the number of features in <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The number of features in <em class="parameter"><code>features</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-get-nth"></a><h3>gst_caps_features_get_nth ()</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_caps_features_get_nth           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> i</code></em>);</pre>
+<p>
+Returns the <em class="parameter"><code>i</code></em>-th feature of <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index of the feature</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The <em class="parameter"><code>i</code></em>-th feature of <em class="parameter"><code>features</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-get-nth-id"></a><h3>gst_caps_features_get_nth_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              gst_caps_features_get_nth_id        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> i</code></em>);</pre>
+<p>
+Returns the <em class="parameter"><code>i</code></em>-th feature of <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index of the feature</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The <em class="parameter"><code>i</code></em>-th feature of <em class="parameter"><code>features</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-add"></a><h3>gst_caps_features_add ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_features_add               (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em 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</code></em>);</pre>
+<p>
+Adds <em class="parameter"><code>feature</code></em> to <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-add-id"></a><h3>gst_caps_features_add_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_features_add_id            (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> feature</code></em>);</pre>
+<p>
+Adds <em class="parameter"><code>feature</code></em> to <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-remove"></a><h3>gst_caps_features_remove ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_features_remove            (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>,
+                                                         <em 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</code></em>);</pre>
+<p>
+Removes <em class="parameter"><code>feature</code></em> from <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-features-remove-id"></a><h3>gst_caps_features_remove_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_features_remove_id         (<em class="parameter"><code><a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</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> feature</code></em>);</pre>
+<p>
+Removes <em class="parameter"><code>feature</code></em> from <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstCapsFeatures.see-also"></a><h2>See Also</h2>
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</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-GstContext.html b/docs/gst/html/gstreamer-GstContext.html
new file mode 100644
index 0000000..2ec329e
--- /dev/null
+++ b/docs/gst/html/gstreamer-GstContext.html
@@ -0,0 +1,340 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstContext</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstControlBinding.html" title="GstControlBinding">
+<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="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-GstContext.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gstreamer-GstContext.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gstreamer-GstContext"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-GstContext.top_of_page"></a>GstContext</span></h2>
+<p>GstContext — Lightweight objects to represent element contexts</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gstreamer-GstContext.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+                    <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext">GstContext</a>;
+<a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        <a class="link" href="gstreamer-GstContext.html#gst-context-new" title="gst_context_new ()">gst_context_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        <a class="link" href="gstreamer-GstContext.html#gst-context-ref" title="gst_context_ref ()">gst_context_ref</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstContext.html#gst-context-unref" title="gst_context_unref ()">gst_context_unref</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        <a class="link" href="gstreamer-GstContext.html#gst-context-copy" title="gst_context_copy ()">gst_context_copy</a>                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</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-GstContext.html#gst-context-get-structure" title="gst_context_get_structure ()">gst_context_get_structure</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstContext.html#gst-context-writable-structure" title="gst_context_writable_structure ()">gst_context_writable_structure</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+#define             <a class="link" href="gstreamer-GstContext.html#gst-context-make-writable" title="gst_context_make_writable()">gst_context_make_writable</a>           (context)
+#define             <a class="link" href="gstreamer-GstContext.html#gst-context-is-writable" title="gst_context_is_writable()">gst_context_is_writable</a>             (context)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstContext.html#gst-context-replace" title="gst_context_replace ()">gst_context_replace</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **old_context</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *new_context</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstContext.description"></a><h2>Description</h2>
+<p>
+<a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> is a container object used to store contexts like a device
+context, a display server connection and similar concepts that should
+be shared between multiple elements.
+</p>
+<p>
+Applications can set a context on a complete pipeline by using
+<a class="link" href="GstElement.html#gst-element-set-context" title="gst_element_set_context ()"><code class="function">gst_element_set_context()</code></a>, which will then be propagated to all
+child elements. Elements can handle these in GstElement::<code class="function">set_context()</code>
+and merge them with the context information they already have.
+</p>
+<p>
+When an element needs a context it will do the following actions in this
+order until one step succeeds:
+1) Check if the element already has a context
+2) Query downstream with GST_QUERY_CONTEXT for the context
+3) Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required
+   context types and afterwards check if a usable context was set now
+4) Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
+   and send a GST_EVENT_CONTEXT event downstream, containing the complete
+   context information at this time.
+</p>
+<p>
+Applications should catch the GST_MESSAGE_HAVE_CONTEXT messages and remember
+any content from it unless it has a custom version of a specific context. If
+later an element is posting a GST_MESSAGE_NEED_CONTEXT message for a specific
+context that was created by an element before, the application should pass it
+to the element or the complete pipeline.
+</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstContext.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstContext"></a><h3>GstContext</h3>
+<pre class="programlisting">typedef struct _GstContext GstContext;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-new"></a><h3>gst_context_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        gst_context_new                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Create a new context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new context. <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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-ref"></a><h3>gst_context_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        gst_context_ref                     (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Convenience macro to increase the reference count of the context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the context to ref</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>context</code></em> (for convenience when doing assignments)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-unref"></a><h3>gst_context_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_context_unref                   (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Convenience macro to decrease the reference count of the context, possibly
+freeing it.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the context to unref</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-copy"></a><h3>gst_context_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="returnvalue">GstContext</span></a> *        gst_context_copy                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Creates a copy of the context. Returns a copy of the context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the context to copy</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>context</code></em>.
+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-context-get-structure"></a><h3>gst_context_get_structure ()</h3>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_context_get_structure          (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Access the structure of the context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>The <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The structure of the context. The structure is
+still owned by the context, which means that you should not modify it,
+free it and that the pointer becomes invalid when you free the context. <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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-writable-structure"></a><h3>gst_context_writable_structure ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_context_writable_structure      (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Get a writable version of the structure.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>The <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The structure of the context. The structure is still
+owned by the event, which means that you should not free it and
+that the pointer becomes invalid when you free the event.
+This function checks if <em class="parameter"><code>context</code></em> is writable.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-make-writable"></a><h3>gst_context_make_writable()</h3>
+<pre class="programlisting">#define         gst_context_make_writable(context)  GST_CONTEXT_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (context)))
+</pre>
+<p>
+Checks if a context is writable. If not, a writable copy is made and
+returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the context to make writable. <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 context (possibly a duplicate) that is writable.
+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-context-is-writable"></a><h3>gst_context_is_writable()</h3>
+<pre class="programlisting">#define         gst_context_is_writable(context)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (context))
+</pre>
+<p>
+Tests if you can safely write into a context's structure or validly
+modify the seqnum and timestamp fields.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-context-replace"></a><h3>gst_context_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_context_replace                 (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **old_context</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *new_context</code></em>);</pre>
+<p>
+Modifies a pointer to a <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> to point to a different <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>. The
+modification is done atomically (so this is useful for ensuring thread safety
+in some cases), and the reference counts are updated appropriately (the old
+context is unreffed, the new one is reffed).
+</p>
+<p>
+Either <em class="parameter"><code>new_context</code></em> or the <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> pointed to by <em class="parameter"><code>old_context</code></em> may be NULL.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>old_context</code></em> :</span></p></td>
+<td>pointer to a pointer to a <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</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_context</code></em> :</span></p></td>
+<td>pointer to a <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> that will
+replace the context pointed to by <em class="parameter"><code>old_context</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_context</code></em> was different from <em class="parameter"><code>old_context</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstContext.see-also"></a><h2>See Also</h2>
+<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>, <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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-GstDateTime.html b/docs/gst/html/gstreamer-GstDateTime.html
index 0377c07..9f1d52d 100644
--- a/docs/gst/html/gstreamer-GstDateTime.html
+++ b/docs/gst/html/gstreamer-GstDateTime.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstDateTime</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstControlSource.html" title="GstControlSource">
@@ -124,8 +124,11 @@
 <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 class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> that represents a date and time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstDateTime</td>
@@ -140,8 +143,11 @@
 Returns the day of the month of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>.
 Call gst_date_time_has_day before, to avoid warnings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -164,8 +170,11 @@
 Returns the month of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>. January is 1, February is 2, etc..
 Call gst_date_time_has_month before, to avoid warnings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -189,8 +198,11 @@
 calendar. The return is in the range of 0 to 23.
 Call gst_date_time_has_haur before, to avoid warnings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -212,8 +224,11 @@
 Retrieves the fractional part of the seconds in microseconds represented by
 <em class="parameter"><code>datetime</code></em> in the gregorian calendar.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -236,8 +251,11 @@
 calendar.
 Call gst_date_time_has_minute before, to avoid warnings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -261,8 +279,11 @@
 values, timezones before (to the west) of UTC have negative values.
 If <em class="parameter"><code>datetime</code></em> represents UTC time, then the offset is zero.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -285,8 +306,11 @@
 calendar.
 Call gst_date_time_has_second before, to avoid warnings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -309,8 +333,11 @@
 Returns the year of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
 Call gst_date_time_has_year before, to avoid warnings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -357,8 +384,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tzoffset</code></em> :</span></p></td>
@@ -419,8 +449,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
@@ -461,8 +494,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
@@ -494,8 +530,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
@@ -521,8 +560,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>secs</code></em> :</span></p></td>
@@ -548,8 +590,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>secs</code></em> :</span></p></td>
@@ -596,8 +641,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
@@ -641,8 +689,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> which should
@@ -662,8 +713,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> which should
@@ -679,8 +733,11 @@
 <p>
 Atomically increments the reference count of <em class="parameter"><code>datetime</code></em> by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -703,8 +760,11 @@
 Atomically decrements the reference count of <em class="parameter"><code>datetime</code></em> by one.  When the
 reference count reaches zero, the structure is freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -716,8 +776,11 @@
 <div class="refsect2">
 <a name="gst-date-time-has-day"></a><h3>gst_date_time_has_day ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_day               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -735,8 +798,11 @@
 <div class="refsect2">
 <a name="gst-date-time-has-month"></a><h3>gst_date_time_has_month ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_month             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -754,8 +820,11 @@
 <div class="refsect2">
 <a name="gst-date-time-has-second"></a><h3>gst_date_time_has_second ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_second            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -773,8 +842,11 @@
 <div class="refsect2">
 <a name="gst-date-time-has-time"></a><h3>gst_date_time_has_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_date_time_has_time              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -793,8 +865,11 @@
 <div class="refsect2">
 <a name="gst-date-time-has-year"></a><h3>gst_date_time_has_year ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_year              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -821,8 +896,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
@@ -845,8 +923,11 @@
 are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
 2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
@@ -871,8 +952,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dt</code></em> :</span></p></td>
@@ -897,8 +981,11 @@
 <p>
 Free-function: g_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstEvent.html b/docs/gst/html/gstreamer-GstEvent.html
index 99af592..213f10e 100644
--- a/docs/gst/html/gstreamer-GstEvent.html
+++ b/docs/gst/html/gstreamer-GstEvent.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstEvent</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -90,6 +90,10 @@
 <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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-start" title="gst_event_parse_stream_start ()">gst_event_parse_stream_start</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> **stream_id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-set-stream-flags" title="gst_event_set_stream_flags ()">gst_event_set_stream_flags</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><span class="type">GstStreamFlags</span> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-flags" title="gst_event_parse_stream_flags ()">gst_event_parse_stream_flags</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><span class="type">GstStreamFlags</span> *flags</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>);
@@ -170,6 +174,9 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-segment-done" title="gst_event_parse_segment_done ()">gst_event_parse_segment_done</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><span class="type">gint64</span> *position</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-context" title="gst_event_new_context ()">gst_event_new_context</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-context" title="gst_event_parse_context ()">gst_event_parse_context</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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **context</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -206,7 +213,7 @@
 the needed parameters to specify seeking time and mode.
 </p>
 <div class="example">
-<a name="idp21558560"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
+<a name="idp22429776"></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>
@@ -268,8 +275,11 @@
 <p>
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstEvent.mini-object"></a>mini_object</code></em>;</span></p></td>
@@ -306,8 +316,11 @@
 values. You can get the type flags of a <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> with the
 <a class="link" href="gstreamer-GstEvent.html#gst-event-type-get-flags" title="gst_event_type_get_flags ()"><code class="function">gst_event_type_get_flags()</code></a> function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-EVENT-TYPE-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TYPE_UPSTREAM</code></span></p></td>
@@ -355,8 +368,11 @@
 when making custom event types, use this macro with the num and
 the given flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
@@ -388,6 +404,7 @@
   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)),
+  GST_EVENT_CONTEXT               = GST_EVENT_MAKE_TYPE (130, 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)),
@@ -421,8 +438,11 @@
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>.
 Specific custom events are distinguished by the name of the structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-EVENT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_EVENT_UNKNOWN</code></span></p></td>
@@ -493,6 +513,12 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-EVENT-CONTEXT:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CONTEXT</code></span></p></td>
+<td>An event to communicate a <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> to other
+                elements (Since 1.2)
+</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>Marks the end of a segment playback.
 </td>
@@ -587,8 +613,11 @@
 <p>
 Get the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -603,8 +632,11 @@
 <p>
 Get a constant string representation of the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -620,8 +652,11 @@
 Get the <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp of the event. This is the time when the event
 was created.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -636,8 +671,11 @@
 <p>
 The sequence number of <em class="parameter"><code>event</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -652,8 +690,11 @@
 <p>
 Check if an event can travel upstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -668,8 +709,11 @@
 <p>
 Check if an event can travel downstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -684,8 +728,11 @@
 <p>
 Check if an event is serialized with the data stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -700,8 +747,11 @@
 <p>
 Check if an event is sticky on the pads.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the event to query</td>
@@ -715,8 +765,11 @@
 <p>
 Gets the <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a> associated with <em class="parameter"><code>type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -737,8 +790,11 @@
 <p>
 Get a printable name for the given event type. Do not modify or free.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -758,8 +814,11 @@
 <p>
 Get the unique quark for the given event type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -779,8 +838,11 @@
 <p>
 Increase the refcount of this event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -802,8 +864,11 @@
 <p>
 Decrease the refcount of an event, freeing it if the refcount reaches 0.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the event to refcount. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -825,8 +890,11 @@
 <p>
 Either <em class="parameter"><code>new_event</code></em> or 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> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_event</code></em> :</span></p></td>
@@ -855,8 +923,11 @@
 <p>
 Copy the event using the event specific copy function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -878,8 +949,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_event</code></em> :</span></p></td>
@@ -908,8 +982,11 @@
 <p>
 Either <em class="parameter"><code>new_event</code></em> or 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> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_event</code></em> :</span></p></td>
@@ -940,8 +1017,11 @@
 Tests if you can safely write data into a event's structure or validly
 modify the seqnum and timestamp field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>
@@ -959,8 +1039,11 @@
 already writable, this will simply return the same event. A copy will
 otherwise be made using <a class="link" href="gstreamer-GstEvent.html#gst-event-copy" title="gst_event_copy ()"><code class="function">gst_event_copy()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
@@ -983,8 +1066,11 @@
 <p>
 Get a writable version of the structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1020,8 +1106,11 @@
 New custom events can also be created by subclassing the event type if
 needed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -1048,8 +1137,11 @@
 <p>
 Access the structure of the event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1074,8 +1166,11 @@
 Checks if <em class="parameter"><code>event</code></em> has the given <em class="parameter"><code>name</code></em>. This function is usually used to
 check the name of a custom event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1113,8 +1208,11 @@
 two events or messages will never have the same sequence number unless
 that correspondence was made explicitly.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1144,8 +1242,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1181,8 +1282,11 @@
 This event is typically generated after a seek to flush out all queued data
 in the pipeline so that the new media is played as soon as possible.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new flush start event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -1208,8 +1312,11 @@
 This event is typically generated to complete a seek and to resume
 dataflow.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reset_time</code></em> :</span></p></td>
@@ -1231,8 +1338,11 @@
 <p>
 Parse the FLUSH_STOP event and retrieve the <em class="parameter"><code>reset_time</code></em> member.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1268,8 +1378,11 @@
 <p>
 The EOS event itself will not cause any state transitions of the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the new EOS event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -1289,8 +1402,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
@@ -1317,8 +1433,11 @@
 <p>
 Extract timestamp and duration from a new GAP event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1366,8 +1485,11 @@
 <a class="link" href="GstPad.html#gst-pad-create-stream-id" title="gst_pad_create_stream_id ()"><code class="function">gst_pad_create_stream_id()</code></a> or <a class="link" href="GstPad.html#gst-pad-create-stream-id-printf" title="gst_pad_create_stream_id_printf ()"><code class="function">gst_pad_create_stream_id_printf()</code></a> can be
 used to create a stream-id.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>stream_id</code></em> :</span></p></td>
@@ -1392,8 +1514,11 @@
 remain valid only until <em class="parameter"><code>event</code></em> gets freed. Make a copy if you want to
 modify it or store it for later use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1409,6 +1534,53 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-event-set-stream-flags"></a><h3>gst_event_set_stream_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_set_stream_flags          (<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><span class="type">GstStreamFlags</span> flags</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream-start event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>the stream flags to set</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-stream-flags"></a><h3>gst_event_parse_stream_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_stream_flags        (<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><span class="type">GstStreamFlags</span> *flags</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream-start event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>address of variable where to store the stream 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>
+<p class="since">Since 1.2</p>
+</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>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);</pre>
 <p>
@@ -1450,8 +1622,11 @@
 <p>
   time + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -1476,8 +1651,11 @@
 <em class="parameter"><code>segment</code></em> remains valid only until the <em class="parameter"><code>event</code></em> is freed. Don't modify the segment
 and make a copy if you want to modify it or store it for later use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1500,8 +1678,11 @@
 Parses a segment <em class="parameter"><code>event</code></em> and copies the <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> into the location
 given by <em class="parameter"><code>segment</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1529,8 +1710,11 @@
 upstream with a given scope with their own tags with the same
 scope and create a new tag event from it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -1557,8 +1741,11 @@
 the <em class="parameter"><code>event</code></em> is freed. Don't modify or free the taglist, make a copy if you
 want to modify it or store it for later use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1586,8 +1773,11 @@
 <p>
 When the <em class="parameter"><code>async</code></em> flag is set, a thread boundary is preferred.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1624,8 +1814,11 @@
 <p>
 Get the format, minsize, maxsize and async-flag in the buffersize event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1667,8 +1860,11 @@
 The different types of QoS events that can be given to the
 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()"><code class="function">gst_event_new_qos()</code></a> method.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-QOS-TYPE-OVERFLOW:CAPS"></a><span class="term"><code class="literal">GST_QOS_TYPE_OVERFLOW</code></span></p></td>
@@ -1751,8 +1947,11 @@
 The application can use general event probes to intercept the QoS
 event and implement custom application specific QoS handling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -1790,8 +1989,11 @@
 Get the type, proportion, diff and timestamp in the qos event. See
 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()"><code class="function">gst_event_new_qos()</code></a> for more information about the different QoS values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -1834,8 +2036,11 @@
 The different types of seek events. When constructing a seek event with
 <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> or when doing <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-SEEK-TYPE-NONE:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_NONE</code></span></p></td>
@@ -1914,8 +2119,11 @@
 details on the meaning of these flags and the behaviour expected of
 elements that handle them.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-SEEK-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_NONE</code></span></p></td>
@@ -2026,8 +2234,11 @@
 <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-POSITION:CAPS"><span class="type">GST_QUERY_POSITION</span></a> and update the playback segment current position with a
 <a class="link" href="gstreamer-GstEvent.html#GST-SEEK-TYPE-SET:CAPS"><span class="type">GST_SEEK_TYPE_SET</span></a> to the desired position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
@@ -2079,8 +2290,11 @@
 <p>
 Parses a seek <em class="parameter"><code>event</code></em> and stores the results in the given result locations.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2131,8 +2345,11 @@
 <p>
 Create a new navigation event from the given description.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2161,8 +2378,11 @@
 The latency is mostly used in live sinks and is always expressed in
 the time format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>latency</code></em> :</span></p></td>
@@ -2184,8 +2404,11 @@
 <p>
 Get the latency in the latency event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2225,8 +2448,11 @@
 The <em class="parameter"><code>intermediate</code></em> flag instructs the pipeline that this step operation is
 part of a larger step operation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -2269,8 +2495,11 @@
 <p>
 Parse the step event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2318,8 +2547,11 @@
 <p>
 <em class="parameter"><code>name</code></em> is used to store multiple sticky events on one pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -2346,8 +2578,11 @@
 <p>
 Parse the sink-message event. Unref <em class="parameter"><code>msg</code></em> after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2371,8 +2606,11 @@
 their buffer pools. This is useful when changing properties on elements
 or changing the topology of the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -2389,8 +2627,11 @@
 synchronized with the buffer flow and contains the format of the buffers
 that will follow after the event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -2414,8 +2655,11 @@
 Get the caps from <em class="parameter"><code>event</code></em>. The caps remains valid as long as <em class="parameter"><code>event</code></em> remains
 valid.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2438,8 +2682,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -2468,8 +2715,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2497,8 +2747,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
@@ -2519,8 +2772,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2543,8 +2799,11 @@
 Create a new segment-done event. This event is sent by elements that
 finish playback of a segment as a result of a segment seek.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -2571,8 +2830,11 @@
 <p>
 Extracts the position and format from the segment done message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -2591,6 +2853,61 @@
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-new-context"></a><h3>gst_event_new_context ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_context               (<em class="parameter"><code><a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Create a new context event. The purpose of the context event is
+to pass a pipeline-local context to downstream elements.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</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"><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>. <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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-context"></a><h3>gst_event_parse_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_context             (<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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **context</code></em>);</pre>
+<p>
+Parse the context event. Unref <em class="parameter"><code>context</code></em> after usage.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>The event to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>a pointer to store the <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> in. <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>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstEvent.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstFormat.html b/docs/gst/html/gstreamer-GstFormat.html
index a65df6e..45a75f4 100644
--- a/docs/gst/html/gstreamer-GstFormat.html
+++ b/docs/gst/html/gstreamer-GstFormat.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstFormat</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstEvent.html" title="GstEvent">
@@ -79,8 +79,11 @@
 <p>
 Standard predefined formats
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-FORMAT-UNDEFINED:CAPS"></a><span class="term"><code class="literal">GST_FORMAT_UNDEFINED</code></span></p></td>
@@ -152,8 +155,11 @@
 <p>
 A format definition
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstFormatDefinition.value"></a>value</code></em>;</span></p></td>
@@ -181,8 +187,11 @@
 <p>
 Get a printable name for the given format. Do not modify or free.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -204,8 +213,11 @@
 <p>
 Get the unique quark for the given format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -229,8 +241,11 @@
 Create a new GstFormat based on the nick or return an
 already registered format with that nick.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
@@ -256,8 +271,11 @@
 <p>
 Return the format registered with the given nick.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
@@ -279,8 +297,11 @@
 <p>
 See if the given format is inside the format array.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>formats</code></em> :</span></p></td>
@@ -305,8 +326,11 @@
 <p>
 Get details about the given format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -328,8 +352,11 @@
 Iterate all the registered formats. The format definition is read
 only.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a GstIterator of <a class="link" href="gstreamer-GstFormat.html#GstFormatDefinition" title="struct GstFormatDefinition"><span class="type">GstFormatDefinition</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
diff --git a/docs/gst/html/gstreamer-GstGError.html b/docs/gst/html/gstreamer-GstGError.html
index 2a8da3a..ed808c1 100644
--- a/docs/gst/html/gstreamer-GstGError.html
+++ b/docs/gst/html/gstreamer-GstGError.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstGError</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -70,7 +70,7 @@
 Errors from elements are the combination of a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> and a debug string.
 The <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> contains:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>a domain type: CORE, LIBRARY, RESOURCE or STREAM</p></li>
 <li class="listitem"><p>a code: an enum value specific to the domain</p></li>
 <li class="listitem"><p>a translated, human-readable message</p></li>
@@ -115,7 +115,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp6829744"></a><p class="title"><b>Example 7. Throwing an error</b></p>
+<a name="idp6585536"></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>
@@ -135,7 +135,7 @@
 <p>
 Things to keep in mind:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Don't go off inventing new error codes.  The ones
     currently provided should be enough.  If you find your type of error
     does not fit the current codes, you should use FAILED.</p></li>
@@ -185,8 +185,11 @@
 <p>
 Core errors are errors inside the core GStreamer library.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CORE-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">GST_CORE_ERROR_FAILED</code></span></p></td>
@@ -287,8 +290,11 @@
 Library errors are for errors from the library being used by elements
 (initializing, finalizing, settings, ...)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-LIBRARY-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">GST_LIBRARY_ERROR_FAILED</code></span></p></td>
@@ -356,8 +362,11 @@
 memory, files, network connections, process space, ...
 They're typically used by source and sink elements.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RESOURCE-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">GST_RESOURCE_ERROR_FAILED</code></span></p></td>
@@ -465,8 +474,11 @@
 format errors, media type errors, ...
 They're typically used by decoders, demuxers, converters, ...
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STREAM-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">GST_STREAM_ERROR_FAILED</code></span></p></td>
@@ -612,8 +624,11 @@
 <p>
 Get a string describing the error message in the current locale.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstInfo.html b/docs/gst/html/gstreamer-GstInfo.html
index 17948ca..2e612c3 100644
--- a/docs/gst/html/gstreamer-GstInfo.html
+++ b/docs/gst/html/gstreamer-GstInfo.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstInfo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -93,6 +93,8 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-set-colored" title="gst_debug_set_colored ()">gst_debug_set_colored</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> colored</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstInfo.html#gst-debug-is-colored" title="gst_debug_is_colored ()">gst_debug_is_colored</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-set-default-threshold" title="gst_debug_set_default_threshold ()">gst_debug_set_default_threshold</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugLevel" title="enum GstDebugLevel"><span class="type">GstDebugLevel</span></a> level</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-set-threshold-from-string" title="gst_debug_set_threshold_from_string ()">gst_debug_set_threshold_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> *list</code></em>,
+                                                         <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</code></em>);
 <a class="link" href="gstreamer-GstInfo.html#GstDebugLevel" title="enum GstDebugLevel"><span class="returnvalue">GstDebugLevel</span></a>       <a class="link" href="gstreamer-GstInfo.html#gst-debug-get-default-threshold" title="gst_debug_get_default_threshold ()">gst_debug_get_default_threshold</a>     (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-set-threshold-for-name" title="gst_debug_set_threshold_for_name ()">gst_debug_set_threshold_for_name</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-GstInfo.html#GstDebugLevel" title="enum GstDebugLevel"><span class="type">GstDebugLevel</span></a> level</code></em>);
@@ -223,7 +225,7 @@
 <p>
 The debugging subsystem works only after GStreamer has been initialized
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>for example by calling <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a>.</p></li></ul></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>for example by calling <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a>.</p></li></ul></div>
 <p>
 </p>
 <p>
@@ -322,8 +324,11 @@
 The level defines the importance of a debugging message. The more important a
 message is, the greater the probability that the debugging system outputs it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-LEVEL-NONE:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_NONE</code></span></p></td>
@@ -450,8 +455,11 @@
 These are some terminal style flags you can use when creating your
 debugging categories to make them stand out in debugging output.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-DEBUG-FG-BLACK:CAPS"></a><span class="term"><code class="literal">GST_DEBUG_FG_BLACK</code></span></p></td>
@@ -572,8 +580,11 @@
 Available details for pipeline graphs produced by <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>
 and <a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS" title="GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()"><code class="function">GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-DEBUG-GRAPH-SHOW-MEDIA-TYPE:CAPS"></a><span class="term"><code class="literal">GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE</code></span></p></td>
@@ -615,8 +626,11 @@
 platforms (ie Solaris) the libc crashes in that case. This includes debugging
 strings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
 <td>The string to check.</td>
@@ -631,8 +645,11 @@
 Evaluates to 2 strings, that describe the pad. Often used in debugging
 statements.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
 <td>The pad to debug.</td>
@@ -671,8 +688,11 @@
 <a class="link" href="gstreamer-GstInfo.html#gst-debug-add-log-function" title="gst_debug_add_log_function ()"><code class="function">gst_debug_add_log_function()</code></a>.
 Use G_GNUC_NO_INSTRUMENT on that function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -726,8 +746,11 @@
 <p>
 Logs the given message using the currently registered debugging handlers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -780,8 +803,11 @@
 <p>
 Logs the given message using the currently registered debugging handlers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -828,8 +854,11 @@
 Gets the string representation of a <span class="type">GstDebugMessage</span>. This function is used
 in debug handlers to extract the message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -864,8 +893,11 @@
 And you can remove this handler by calling
 gst_debug_remove_log_function(gst_debug_log_default);
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -911,8 +943,11 @@
 <p>
 Get the string representation of a debugging level
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
@@ -935,8 +970,11 @@
 Adds the logging function to the list of logging functions.
 Be sure to use <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Macros.html#G-GNUC-NO-INSTRUMENT:CAPS"><span class="type">G_GNUC_NO_INSTRUMENT</span></a> on that function, it is needed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -960,8 +998,11 @@
 <p>
 Removes all registered instances of the given logging functions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
@@ -983,8 +1024,11 @@
 <p>
 Removes all registered instances of log functions with the given user data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -1013,8 +1057,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
 <td>Whether to use debugging output or not</td>
@@ -1028,8 +1075,11 @@
 <p>
 Checks if debugging output is activated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE, if debugging is activated</td>
@@ -1046,8 +1096,11 @@
 <p>
 This function may be called before <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>colored</code></em> :</span></p></td>
 <td>Whether to use colored output or not</td>
@@ -1061,8 +1114,11 @@
 <p>
 Checks if the debugging output should be colored.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE, if the debug output should be colored.</td>
@@ -1080,8 +1136,11 @@
 <p>
 This function may be called before <a class="link" href="gstreamer-Gst.html#gst-init" title="gst_init ()"><code class="function">gst_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
 <td>level to set</td>
@@ -1090,13 +1149,49 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-debug-set-threshold-from-string"></a><h3>gst_debug_set_threshold_from_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_debug_set_threshold_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> *list</code></em>,
+                                                         <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</code></em>);</pre>
+<p>
+Sets the debug logging wanted in the same form as with the GST_DEBUG
+environment variable. You can use wildcards such as '*', but note that
+the order matters when you use wild cards, e.g. "foosrc:6,*src:3,*:2" sets
+everything to log level 2.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>comma-separated list of "category:level" pairs to be used
+as debug logging levels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reset</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> to clear all previously-set debug levels before setting
+new thresholds
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if adding the threshold described by <em class="parameter"><code>list</code></em> to the one already set.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-debug-get-default-threshold"></a><h3>gst_debug_get_default_threshold ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstInfo.html#GstDebugLevel" title="enum GstDebugLevel"><span class="returnvalue">GstDebugLevel</span></a>       gst_debug_get_default_threshold     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 Returns the default threshold that is used for new categories.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the default threshold level</td>
@@ -1112,8 +1207,11 @@
 Sets all categories which match the given glob style pattern to the given
 level.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -1133,8 +1231,11 @@
 <p>
 Resets all categories with the given name back to the default level.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
 <td>name of the categories to set</td>
@@ -1150,8 +1251,11 @@
 Defines a GstDebugCategory variable.
 This macro expands to nothing if debugging is disabled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
 <td>the category</td>
@@ -1167,8 +1271,11 @@
 Declares a GstDebugCategory variable as extern. Use in header files.
 This macro expands to nothing if debugging is disabled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
 <td>the category</td>
@@ -1184,8 +1291,11 @@
 Defines a static GstDebugCategory variable.
 This macro expands to nothing if debugging is disabled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
 <td>the category</td>
@@ -1229,8 +1339,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1285,8 +1398,11 @@
 
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1306,8 +1422,11 @@
 <p>
 Removes and frees the category and all associated resources.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
 <td>
@@ -1335,8 +1454,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -1360,8 +1482,11 @@
 Use this function to set the threshold back to where it was after using
 <a class="link" href="gstreamer-GstInfo.html#gst-debug-category-set-threshold" title="gst_debug_category_set_threshold ()"><code class="function">gst_debug_category_set_threshold()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstInfo.html#GstDebugCategory" title="struct GstDebugCategory"><span class="type">GstDebugCategory</span></a> to reset threshold of.</td>
@@ -1375,8 +1500,11 @@
 <p>
 Returns the threshold of a <a class="link" href="gstreamer-GstInfo.html#GstDebugCategory" title="struct GstDebugCategory"><span class="type">GstDebugCategory</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -1396,8 +1524,11 @@
 <p>
 Returns the name of a debug category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -1418,8 +1549,11 @@
 Returns the color of a debug category used when printing output in this
 category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -1439,8 +1573,11 @@
 <p>
 Returns the description of a debug category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
@@ -1462,8 +1599,11 @@
 may change anytime.
 The caller has to free the list after use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the list of
@@ -1481,8 +1621,11 @@
 terminals.
 You need to free the string after use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>colorinfo</code></em> :</span></p></td>
@@ -1509,8 +1652,11 @@
 <p>
 This function returns 0 on non-windows machines.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>colorinfo</code></em> :</span></p></td>
@@ -1532,8 +1678,11 @@
 debugging messages. You will probably want to use one of the ones described
 below.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1563,8 +1712,11 @@
 <p>
 Output an error message belonging to the given object in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1589,8 +1741,11 @@
 <p>
 Output a warning message belonging to the given object in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1616,8 +1771,11 @@
 Output an informational message belonging to the given object in the given
 category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1642,8 +1800,11 @@
 <p>
 Output an debugging message belonging to the given object in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1668,8 +1829,11 @@
 <p>
 Output an logging message belonging to the given object in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1694,8 +1858,11 @@
 <p>
 Output a fixme message belonging to the given object in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1721,8 +1888,11 @@
 Output a tracing message belonging to the given object in the given
 category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1747,8 +1917,11 @@
 Output a hexdump of <em class="parameter"><code>data</code></em> relating to the given object in the given
 category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1781,8 +1954,11 @@
 <p>
 Output an error message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1803,8 +1979,11 @@
 <p>
 Output an warning message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1825,8 +2004,11 @@
 <p>
 Output an informational message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1847,8 +2029,11 @@
 <p>
 Output an debugging message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1869,8 +2054,11 @@
 <p>
 Output an logging message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1891,8 +2079,11 @@
 <p>
 Output an fixme message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1913,8 +2104,11 @@
 <p>
 Output a tracing message in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1934,8 +2128,11 @@
 <p>
 Output a hexdump of <em class="parameter"><code>data</code></em> in the given category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cat</code></em> :</span></p></td>
@@ -1964,8 +2161,11 @@
 <p>
 Output an error message belonging to the given object in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -1986,8 +2186,11 @@
 <p>
 Output a warning message belonging to the given object in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2009,8 +2212,11 @@
 Output an informational message belonging to the given object in the default
 category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2032,8 +2238,11 @@
 Output a debugging message belonging to the given object in the default
 category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2054,8 +2263,11 @@
 <p>
 Output a logging message belonging to the given object in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2076,8 +2288,11 @@
 <p>
 Output a fixme message belonging to the given object in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2098,8 +2313,11 @@
 <p>
 Output a tracing message belonging to the given object in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2119,8 +2337,11 @@
 <p>
 Output a logging message belonging to the given object in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -2149,8 +2370,11 @@
 <p>
 Output an error message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2165,8 +2389,11 @@
 <p>
 Output a warning message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2181,8 +2408,11 @@
 <p>
 Output an informational message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2197,8 +2427,11 @@
 <p>
 Output a debugging message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2213,8 +2446,11 @@
 <p>
 Output a logging message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2229,8 +2465,11 @@
 <p>
 Output a fixme message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2245,8 +2484,11 @@
 <p>
 Output a tracing message in the default category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
 <td>printf-style message to output</td>
@@ -2260,8 +2502,11 @@
 <p>
 Output a hexdump of <em class="parameter"><code>data</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -2289,8 +2534,11 @@
 <p>
 Use this variant of <a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR:CAPS" title="GST_DEBUG_FUNCPTR()"><span class="type">GST_DEBUG_FUNCPTR</span></a> if you do not need to use <em class="parameter"><code>ptr</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ptr</code></em> :</span></p></td>
 <td>pointer to the function to register</td>
@@ -2305,8 +2553,11 @@
 Register a pointer to a function with its name, so it can later be used by
 <a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR-NAME:CAPS" title="GST_DEBUG_FUNCPTR_NAME()"><code class="function">GST_DEBUG_FUNCPTR_NAME()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ptr</code></em> :</span></p></td>
@@ -2331,8 +2582,11 @@
 This macro returns a constant string which must not be modified or
 freed by the caller.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ptr</code></em> :</span></p></td>
 <td>address of the function of which to look up the name</td>
@@ -2367,8 +2621,11 @@
 "--gst-enable-gst-debug" and the environment variable
 GST_DEBUG_DUMP_DOT_DIR is set to a basepath (e.g. /tmp).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -2395,8 +2652,11 @@
 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
 to the filename, so that it can be used to take multiple snapshots.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -2458,8 +2718,11 @@
 Format <em class="parameter"><code>t</code></em> for the <a class="link" href="gstreamer-GstInfo.html#GST-TIME-FORMAT:CAPS" title="GST_TIME_FORMAT"><span class="type">GST_TIME_FORMAT</span></a> format string. Note: <em class="parameter"><code>t</code></em> will be
 evaluated more than once.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
 <td>a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>
diff --git a/docs/gst/html/gstreamer-GstIterator.html b/docs/gst/html/gstreamer-GstIterator.html
index 5517fda..fcf4a81 100644
--- a/docs/gst/html/gstreamer-GstIterator.html
+++ b/docs/gst/html/gstreamer-GstIterator.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstIterator</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstGhostPad.html" title="GstGhostPad">
@@ -122,7 +122,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp21270944"></a><p class="title"><b>Example 9. Using an iterator</b></p>
+<a name="idp20845248"></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>
@@ -196,8 +196,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody></tbody>
 </table></div>
 </div>
@@ -213,8 +216,11 @@
 <p>
 The result of a <a class="link" href="gstreamer-GstIterator.html#GstIteratorItemFunction" title="GstIteratorItemFunction ()"><span class="type">GstIteratorItemFunction</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-ITERATOR-ITEM-SKIP:CAPS"></a><span class="term"><code class="literal">GST_ITERATOR_ITEM_SKIP</code></span></p></td>
@@ -247,8 +253,11 @@
 <p>
 The result of <a class="link" href="gstreamer-GstIterator.html#gst-iterator-next" title="gst_iterator_next ()"><code class="function">gst_iterator_next()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-ITERATOR-DONE:CAPS"></a><span class="term"><code class="literal">GST_ITERATOR_DONE</code></span></p></td>
@@ -283,8 +292,11 @@
 create a copy of all custom iterator fields or increase their
 reference counts.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -311,8 +323,11 @@
 function and pass it to the constructor of the custom iterator.
 The function will be called with the iterator lock held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -342,8 +357,11 @@
 <p>
 The function will be called with the iterator lock held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -375,8 +393,11 @@
 function and pass it to the constructor of the custom iterator.
 The function will be called with the iterator lock held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>the iterator</td>
@@ -395,8 +416,11 @@
 function and pass it to the constructor of the custom iterator.
 The function will be called with the iterator lock held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>the iterator</td>
@@ -411,8 +435,11 @@
 <p>
 A function that is called by <a class="link" href="gstreamer-GstIterator.html#gst-iterator-foreach" title="gst_iterator_foreach ()"><code class="function">gst_iterator_foreach()</code></a> for every element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
@@ -434,8 +461,11 @@
 <p>
 A function to be passed to <a class="link" href="gstreamer-GstIterator.html#gst-iterator-fold" title="gst_iterator_fold ()"><code class="function">gst_iterator_fold()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
@@ -465,8 +495,11 @@
 <p>
 Macro to cast to a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> value</td>
@@ -481,8 +514,11 @@
 <p>
 Macro to get the lock protecting the datastructure being iterated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> to get the lock of</td>
@@ -502,8 +538,11 @@
 value of the master cookie. If they are different, a concurrent
 modification happened to the iterator and a resync is needed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> to get the cookie of</td>
@@ -520,8 +559,11 @@
 master cookie protects the structure being iterated and gets updated
 whenever the datastructure changes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> to get the master cookie of</td>
@@ -548,8 +590,11 @@
 For each item retrieved, the <em class="parameter"><code>item</code></em> function is called with the lock
 held. The <em class="parameter"><code>free</code></em> function is called when the iterator is freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
@@ -623,8 +668,11 @@
 will notice the update of the cookie and will return <a class="link" href="gstreamer-GstIterator.html#GST-ITERATOR-RESYNC:CAPS"><code class="literal">GST_ITERATOR_RESYNC</code></a> to
 the user of the iterator in the next call to <a class="link" href="gstreamer-GstIterator.html#gst-iterator-next" title="gst_iterator_next ()"><code class="function">gst_iterator_next()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -671,8 +719,11 @@
 a single object has to be considered. This happens often
 for the <a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -697,8 +748,11 @@
 <p>
 Copy the iterator and its state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -722,8 +776,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>The <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> to free</td>
@@ -757,8 +814,11 @@
 <p>
 A return value of <a class="link" href="gstreamer-GstIterator.html#GST-ITERATOR-ERROR:CAPS"><code class="literal">GST_ITERATOR_ERROR</code></a> indicates an unrecoverable fatal error.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -792,8 +852,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
 <td>The <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> to resync</td>
@@ -821,8 +884,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -851,8 +917,11 @@
 <p>
 When this iterator is freed, <em class="parameter"><code>it</code></em> will also be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -904,8 +973,11 @@
 <p>
 The iterator will not be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -943,8 +1015,11 @@
 Iterate over all element of <em class="parameter"><code>it</code></em> and call the given function <em class="parameter"><code>func</code></em> for
 each element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
@@ -990,8 +1065,11 @@
 This function will return FALSE if an error happened to the iterator
 or if the element wasn't found.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstMemory.html b/docs/gst/html/gstreamer-GstMemory.html
index 624a605..b94574a 100644
--- a/docs/gst/html/gstreamer-GstMemory.html
+++ b/docs/gst/html/gstreamer-GstMemory.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMemory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -50,6 +50,8 @@
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE:CAPS" title="GST_MEMORY_IS_NO_SHARE()">GST_MEMORY_IS_NO_SHARE</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)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-PHYSICALLY-CONTIGUOUS:CAPS" title="GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS()">GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS</a> (mem)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-NOT-MAPPABLE:CAPS" title="GST_MEMORY_IS_NOT_MAPPABLE()">GST_MEMORY_IS_NOT_MAPPABLE</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>;
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS" title="GST_MAP_READWRITE">GST_MAP_READWRITE</a>
@@ -76,6 +78,8 @@
                                                          <em class="parameter"><code><span class="type">gsize</span> align</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 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-type" title="gst_memory_is_type ()">gst_memory_is_type</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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mem_type</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> *memory</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> *memory</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>,
@@ -89,6 +93,7 @@
 #define             <a class="link" href="gstreamer-GstMemory.html#gst-memory-unlock" title="gst_memory_unlock()">gst_memory_unlock</a>                   (m,
                                                          f)
 #define             <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-writable" title="gst_memory_is_writable()">gst_memory_is_writable</a>              (m)
+#define             <a class="link" href="gstreamer-GstMemory.html#gst-memory-make-writable" title="gst_memory_make_writable()">gst_memory_make_writable</a>            (m)
 <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>);
@@ -170,6 +175,8 @@
   GST_MEMORY_FLAG_NO_SHARE      = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 0),
   GST_MEMORY_FLAG_ZERO_PREFIXED = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 1),
   GST_MEMORY_FLAG_ZERO_PADDED   = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 2),
+  GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 3),
+  GST_MEMORY_FLAG_NOT_MAPPABLE  = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 4),
 
   GST_MEMORY_FLAG_LAST          = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 16)
 } GstMemoryFlags;
@@ -177,8 +184,11 @@
 <p>
 Flags for wrapped memory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-MEMORY-FLAG-READONLY:CAPS"></a><span class="term"><code class="literal">GST_MEMORY_FLAG_READONLY</code></span></p></td>
@@ -203,6 +213,16 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-MEMORY-FLAG-PHYSICALLY-CONTIGUOUS:CAPS"></a><span class="term"><code class="literal">GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS</code></span></p></td>
+<td>the memory is physically contiguous. Since 1.2
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MEMORY-FLAG-NOT-MAPPABLE:CAPS"></a><span class="term"><code class="literal">GST_MEMORY_FLAG_NOT_MAPPABLE</code></span></p></td>
+<td>the memory can't be mapped via <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a> without any preconditions. Since 1.2
+</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>
@@ -218,8 +238,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -234,8 +257,11 @@
 <p>
 Gives the status of a specific flag on a <em class="parameter"><code>mem</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -256,8 +282,11 @@
 <p>
 Clear a specific flag on a <em class="parameter"><code>mem</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -278,8 +307,11 @@
 <p>
 Check if <em class="parameter"><code>mem</code></em> is readonly.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -294,8 +326,11 @@
 <p>
 Check if <em class="parameter"><code>mem</code></em> cannot be shared between buffers
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -310,8 +345,11 @@
 <p>
 Check if the padding in <em class="parameter"><code>mem</code></em> is 0 filled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -326,8 +364,11 @@
 <p>
 Check if the prefix in <em class="parameter"><code>mem</code></em> is 0 filled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -336,6 +377,46 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-MEMORY-IS-PHYSICALLY-CONTIGUOUS:CAPS"></a><h3>GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS()</h3>
+<pre class="programlisting">#define GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS)
+</pre>
+<p>
+Check if <em class="parameter"><code>mem</code></em> is physically contiguous.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MEMORY-IS-NOT-MAPPABLE:CAPS"></a><h3>GST_MEMORY_IS_NOT_MAPPABLE()</h3>
+<pre class="programlisting">#define GST_MEMORY_IS_NOT_MAPPABLE(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_NOT_MAPPABLE)
+</pre>
+<p>
+Check if <em class="parameter"><code>mem</code></em> can't be mapped via <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a> without any preconditions
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstMemory"></a><h3>struct GstMemory</h3>
 <pre class="programlisting">struct GstMemory {
   GstMiniObject   mini_object;
@@ -353,8 +434,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstMemory.mini-object"></a>mini_object</code></em>;</span></p></td>
@@ -401,8 +485,11 @@
 <p>
 Flags used when mapping memory
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-MAP-READ:CAPS"></a><span class="term"><code class="literal">GST_MAP_READ</code></span></p></td>
@@ -446,8 +533,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -495,8 +585,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -526,8 +619,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -553,8 +649,11 @@
 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 copied.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -588,8 +687,11 @@
 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
 shared. This function does not make a copy of the bytes in <em class="parameter"><code>mem</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -621,8 +723,11 @@
 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem1</code></em> :</span></p></td>
@@ -661,8 +766,11 @@
 Initializes a newly allocated <em class="parameter"><code>mem</code></em> with the given parameters. This function
 will 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> with the default memory parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -704,13 +812,48 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-memory-is-type"></a><h3>gst_memory_is_type ()</h3>
+<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_type                  (<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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mem_type</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>mem</code></em> if allocated with an allocator for <em class="parameter"><code>mem_type</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>mem_type</code></em> :</span></p></td>
+<td>a memory 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 <em class="parameter"><code>mem</code></em> was allocated from an allocator for <em class="parameter"><code>mem_type</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-memory-ref"></a><h3>gst_memory_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_ref                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *memory</code></em>);</pre>
 <p>
 Increase the refcount of this memory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>memory</code></em> :</span></p></td>
@@ -732,8 +875,11 @@
 <p>
 Decrease the refcount of an memory, freeing it if the refcount reaches 0.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>memory</code></em> :</span></p></td>
 <td>the memory to refcount. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -750,8 +896,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -788,8 +937,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -827,6 +979,12 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-memory-make-writable"></a><h3>gst_memory_make_writable()</h3>
+<pre class="programlisting">#define        gst_memory_make_writable(m) GST_MEMORY_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (m)))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <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>,
@@ -840,8 +998,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -879,7 +1040,7 @@
 <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">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-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>
@@ -893,8 +1054,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -926,8 +1090,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -953,8 +1120,11 @@
 guaranteed to be writable. <em class="parameter"><code>size</code></em> can be set to -1 to return a copy all bytes
 from <em class="parameter"><code>offset</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -988,8 +1158,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -1026,8 +1199,11 @@
 efficiently by performing <a class="link" href="gstreamer-GstMemory.html#gst-memory-share" title="gst_memory_share ()"><code class="function">gst_memory_share()</code></a> on the parent object from
 the returned <em class="parameter"><code>offset</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem1</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstMessage.html b/docs/gst/html/gstreamer-GstMessage.html
index 00ac3ec..c35a7e7 100644
--- a/docs/gst/html/gstreamer-GstMessage.html
+++ b/docs/gst/html/gstreamer-GstMessage.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -253,6 +253,17 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstProgressType" title="enum GstProgressType"><span class="type">GstProgressType</span></a> *type</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> **code</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> **text</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-need-context" title="gst_message_new_need_context ()">gst_message_new_need_context</a>        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-add-context-type" title="gst_message_add_context_type ()">gst_message_add_context_type</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> *context_type</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-GstMessage.html#gst-message-get-n-context-types" title="gst_message_get_n_context_types ()">gst_message_get_n_context_types</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>);
+<a 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-parse-nth-context-type" title="gst_message_parse_nth_context_type ()">gst_message_parse_nth_context_type</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#guint"><span class="type">guint</span></a> i</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **context_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-new-have-context" title="gst_message_new_have_context ()">gst_message_new_have_context</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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-have-context" title="gst_message_parse_have_context ()">gst_message_parse_have_context</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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **context</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -273,7 +284,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp30206864"></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>
+<a name="idp30142336"></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>
@@ -312,8 +323,11 @@
 <p>
 A <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstMessage.mini-object"></a>mini_object</code></em>;</span></p></td>
@@ -372,14 +386,19 @@
   GST_MESSAGE_TOC               = (1 &lt;&lt; 26),
   GST_MESSAGE_RESET_TIME        = (1 &lt;&lt; 27),
   GST_MESSAGE_STREAM_START      = (1 &lt;&lt; 28),
+  GST_MESSAGE_NEED_CONTEXT      = (1 &lt;&lt; 29),
+  GST_MESSAGE_HAVE_CONTEXT      = (1 &lt;&lt; 30),
   GST_MESSAGE_ANY               = ~0
 } GstMessageType;
 </pre>
 <p>
 The different message types that are available.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-MESSAGE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_UNKNOWN</code></span></p></td>
@@ -571,6 +590,14 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-MESSAGE-NEED-CONTEXT:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_NEED_CONTEXT</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-MESSAGE-HAVE-CONTEXT:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_HAVE_CONTEXT</code></span></p></td>
+<td></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>
@@ -586,8 +613,11 @@
 <p>
 Get the object that posted <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -603,8 +633,11 @@
 Get the name of the object that posted <em class="parameter"><code>message</code></em>. Returns "(NULL)" if
 the message has no source object set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -621,8 +654,11 @@
 Get the timestamp of <em class="parameter"><code>message</code></em>. This is the timestamp when the message
 was created.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -638,8 +674,11 @@
 <p>
 Get the sequence number of <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -655,8 +694,11 @@
 <p>
 Get the <a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> of <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -672,8 +714,11 @@
 <p>
 Get a constant string representation of the <a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> of <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -688,8 +733,11 @@
 <p>
 Get the unique quark for the given message type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -709,8 +757,11 @@
 <p>
 Get a printable name for the given message type. Do not modify or free.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -730,8 +781,11 @@
 <p>
 Convenience macro to increase the reference count of the message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -753,8 +807,11 @@
 Convenience macro to decrease the reference count of the message, possibly
 freeing it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
 <td>the message to unref</td>
@@ -768,8 +825,11 @@
 <p>
 Creates a copy of the message. Returns a copy of the message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -791,8 +851,11 @@
 <p>
 Access the structure of the message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -818,8 +881,11 @@
 Checks if a message is writable. If not, a writable copy is made and
 returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -855,8 +921,11 @@
 two events or messages will never have the same sequence number unless
 that correspondence was made explicitly.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -886,8 +955,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -909,8 +981,11 @@
 Checks if <em class="parameter"><code>message</code></em> has the given <em class="parameter"><code>name</code></em>. This function is usually used to
 check the name of a custom message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -937,8 +1012,11 @@
 Tests if you can safely write into a message's structure or validly
 modify the seqnum and timestamp fields.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>
@@ -960,8 +1038,11 @@
 <p>
 Either <em class="parameter"><code>new_message</code></em> or the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> pointed to by <em class="parameter"><code>old_message</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_message</code></em> :</span></p></td>
@@ -992,8 +1073,11 @@
 the sink elements of a GstBin. The bin will only forward the EOS
 message to the application if all sinks have posted an EOS message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1021,8 +1105,11 @@
 occured. The pipeline will probably (partially) stop. The application
 receiving this message should stop the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1108,8 +1195,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1139,8 +1229,11 @@
 Create a new warning message. The message will make copies of <em class="parameter"><code>error</code></em> and
 <em class="parameter"><code>debug</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1178,8 +1271,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1212,8 +1308,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1250,8 +1349,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1280,8 +1382,11 @@
 Create a new tag message. The message will take ownership of the tag list.
 The message is posted by elements that discovered a new taglist.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1356,8 +1461,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1392,8 +1500,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1424,8 +1535,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1450,8 +1564,11 @@
 <p>
 Configures the buffering stats values in <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1487,8 +1604,11 @@
 <p>
 Extracts the buffering stats values from <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1529,8 +1649,11 @@
 Create a state change message. This message is posted whenever an element
 changed its state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1615,8 +1738,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1649,8 +1775,11 @@
 changed its state asynchronously and is used internally to update the
 states of container objects.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1685,8 +1814,11 @@
 <em class="parameter"><code>duration</code></em> will contain the amount of time (in GST_FORMAT_TIME) of the stepped
 <em class="parameter"><code>amount</code></em> of media in format <em class="parameter"><code>format</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1747,8 +1879,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1807,8 +1942,11 @@
 This message is mainly used internally to manage the clock
 selection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1846,8 +1984,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1881,8 +2022,11 @@
 select a new clock again when it goes to PLAYING. It might therefore
 be needed to set the pipeline to PAUSED and PLAYING again.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1915,8 +2059,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1939,8 +2086,11 @@
 Create a new clock message. This message is posted whenever the
 pipeline selectes a new clock for the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1973,8 +2123,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -1998,8 +2151,11 @@
 Create a new application-typed message. GStreamer will never create these
 messages; they are a gift from us to you. Enjoy.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2032,8 +2188,11 @@
 "the firewire cable was unplugged". The format of the message should be
 documented in the element's documentation. The structure field can be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2066,8 +2225,11 @@
 handled by other message-specific functions to pass a message to the
 app. The structure field can be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -2104,8 +2266,11 @@
 is not received by the application but is used for maintenance reasons in
 container elements.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2141,8 +2306,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2173,8 +2341,11 @@
 is received by the application after all elements that posted a segment_start
 have posted the segment_done.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2205,13 +2376,16 @@
                                                          <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><span class="type">gint64</span> *position</code></em>);</pre>
 <p>
-Extracts the position and format from the segment start message.
+Extracts the position and format from the segment done message.
 </p>
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2243,8 +2417,11 @@
 cached duration should be discarded. The new duration can then be 
 retrieved via a query.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2268,8 +2445,11 @@
 This message can be posted by elements when their latency requirements have
 changed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2292,8 +2472,11 @@
 <p>
 This message is posted by elements when they start an ASYNC state change.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2321,8 +2504,11 @@
 means that the element has no clock interaction and thus doesn't care about
 the running_time of the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2353,8 +2539,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2392,8 +2581,11 @@
 message is emited, the application can queue a new step operation in the
 element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2449,8 +2641,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2515,8 +2710,11 @@
 buffer that generated the QoS event. Values can be left to
 GST_CLOCK_TIME_NONE when unknown.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2564,8 +2762,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2606,8 +2807,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2652,8 +2856,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2704,8 +2911,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2751,8 +2961,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2791,8 +3004,11 @@
 Create a new TOC message. The message is posted by elements
 that discovered or updated a TOC.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2831,8 +3047,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2860,8 +3079,11 @@
 This message is posted when the pipeline running-time should be reset to
 <em class="parameter"><code>running_time</code></em>, like after a flushing seek.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2892,8 +3114,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -2917,8 +3142,11 @@
 the sink elements of a GstBin. The bin will only forward the STREAM_START
 message to the application if all sinks have posted an STREAM_START message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -2945,8 +3173,11 @@
 <p>
 The type of a <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-STRUCTURE-CHANGE:CAPS"><code class="literal">GST_MESSAGE_STRUCTURE_CHANGE</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS"></a><span class="term"><code class="literal">GST_STRUCTURE_CHANGE_TYPE_PAD_LINK</code></span></p></td>
@@ -2976,8 +3207,11 @@
 <p>
 <em class="parameter"><code>src</code></em> should be the sinkpad that unlinked or linked.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -3019,8 +3253,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -3056,8 +3293,11 @@
 changed. A typical use case would be an audio server that wants to pause the
 pipeline because a higher priority stream is being played.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -3088,8 +3328,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -3121,8 +3364,11 @@
 The type of a <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-STREAM-STATUS:CAPS"><code class="literal">GST_MESSAGE_STREAM_STATUS</code></a>. The stream status messages inform the
 application of new streaming threads and their status.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STREAM-STATUS-TYPE-CREATE:CAPS"></a><span class="term"><code class="literal">GST_STREAM_STATUS_TYPE_CREATE</code></span></p></td>
@@ -3172,8 +3418,11 @@
 Create a new stream status message. This message is posted when a streaming
 thread is created/destroyed or when the state changed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -3211,8 +3460,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -3241,8 +3493,11 @@
 Configures the object handling the streaming thread. This is usually a
 GstTask object but other objects might be added in the future.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -3263,8 +3518,11 @@
 <p>
 Extracts the object managing the streaming thread from <em class="parameter"><code>message</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -3294,8 +3552,11 @@
 The type of a <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-PROGRESS:CAPS"><code class="literal">GST_MESSAGE_PROGRESS</code></a>. The progress messages inform the
 application of the status of assynchronous tasks.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PROGRESS-TYPE-START:CAPS"></a><span class="term"><code class="literal">GST_PROGRESS_TYPE_START</code></span></p></td>
@@ -3341,8 +3602,11 @@
 <em class="parameter"><code>code</code></em> contains a well defined string describing the action.
 <em class="parameter"><code>test</code></em> should contain a user visible string detailing the current action.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -3379,8 +3643,11 @@
 <p>
 Parses the progress <em class="parameter"><code>type</code></em>, <em class="parameter"><code>code</code></em> and <em class="parameter"><code>text</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
@@ -3404,6 +3671,178 @@
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-message-new-need-context"></a><h3>gst_message_new_need_context ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_need_context        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);</pre>
+<p>
+This message is posted when an element needs a specific <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>The object originating the message. <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 need-context message.
+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-message-add-context-type"></a><h3>gst_message_add_context_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_message_add_context_type        (<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> *context_type</code></em>);</pre>
+<p>
+Add a new context type to <em class="parameter"><code>message</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
+<td>a GST_MESSAGE_NEED_CONTEXT type message</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context_type</code></em> :</span></p></td>
+<td>a context type</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-message-get-n-context-types"></a><h3>gst_message_get_n_context_types ()</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_message_get_n_context_types     (<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 number of values currently stored in the
+context-types array of the message's structure.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
+<td>a GST_MESSAGE_NEED_CONTEXT type message</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the context-types 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-message-parse-nth-context-type"></a><h3>gst_message_parse_nth_context_type ()</h3>
+<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_parse_nth_context_type  (<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#guint"><span class="type">guint</span></a> i</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **context_type</code></em>);</pre>
+<p>
+Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message
+from <em class="parameter"><code>index</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
+<td>a GST_MESSAGE_NEED_CONTEXT type message</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context_type</code></em> :</span></p></td>
+<td>the context type, 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>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the parsing succeeded.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-message-new-have-context"></a><h3>gst_message_new_have_context ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_have_context        (<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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+This message is posted when an element has a new local <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>The object originating the message. <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>context</code></em> :</span></p></td>
+<td>the context. <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 have-context message.
+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-message-parse-have-context"></a><h3>gst_message_parse_have_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_have_context      (<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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **context</code></em>);</pre>
+<p>
+Extract the context from the HAVE_CONTEXT message.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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_HAVE_CONTEXT.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>Result location for the
+context or NULL. <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="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstMessage.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstMeta.html b/docs/gst/html/gstreamer-GstMeta.html
index 996ae4e..5391baf 100644
--- a/docs/gst/html/gstreamer-GstMeta.html
+++ b/docs/gst/html/gstreamer-GstMeta.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMeta</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -120,8 +120,11 @@
 Base structure for metadata. Custom metadata will put this structure
 as the first member of their structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -150,8 +153,11 @@
 <p>
 Extra metadata flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -189,8 +195,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -205,8 +214,11 @@
 <p>
 Gives the status of a specific flag on a metadata.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -227,8 +239,11 @@
 <p>
 Sets a metadata flag on a metadata.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -249,8 +264,11 @@
 <p>
 Clears a metadata flag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -280,8 +298,11 @@
 The <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> provides information about a specific metadata
 structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstMetaInfo.api"></a>api</code></em>;</span></p></td>
@@ -319,8 +340,11 @@
 <p>
 Function called when <em class="parameter"><code>meta</code></em> is initialized in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -347,8 +371,11 @@
 <p>
 Function called when <em class="parameter"><code>meta</code></em> is freed in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -381,8 +408,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>transbuf</code></em> :</span></p></td>
@@ -427,8 +457,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -455,8 +488,11 @@
 <p>
 Check if the transform type is a copy transform
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
 <td>a transform type</td>
@@ -472,8 +508,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
@@ -499,8 +538,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
@@ -544,8 +586,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
@@ -590,8 +635,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>impl</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstMiniObject.html b/docs/gst/html/gstreamer-GstMiniObject.html
index de97a37..d4d1ace 100644
--- a/docs/gst/html/gstreamer-GstMiniObject.html
+++ b/docs/gst/html/gstreamer-GstMiniObject.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMiniObject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -160,8 +160,11 @@
 Set Value Func: g_value_set_boxed
 Get Value Func: g_value_get_boxed
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstMiniObject.type"></a>type</code></em>;</span></p></td>
@@ -201,8 +204,11 @@
 <p>
 Function prototype for methods to create copies of instances.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -226,8 +232,11 @@
 revived after the dispose function, the function should return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
 and the memory associated with the object is freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -249,8 +258,11 @@
 Virtual function prototype for methods to free ressources used by
 mini-objects.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>MiniObject to free</td>
@@ -267,8 +279,11 @@
 callback that gets triggered when <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> drops the
 last ref and <em class="parameter"><code>obj</code></em> is about to be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -289,8 +304,11 @@
 <p>
 This macro returns the type of the mini-object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>MiniObject to return type for.</td>
@@ -310,8 +328,11 @@
 <p>
 Flags for the mini object
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-MINI-OBJECT-FLAG-LOCKABLE:CAPS"></a><span class="term"><code class="literal">GST_MINI_OBJECT_FLAG_LOCKABLE</code></span></p></td>
@@ -341,8 +362,11 @@
 <p>
 This macro returns the entire set of flags for the mini-object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>MiniObject to return flags for.</td>
@@ -357,8 +381,11 @@
 <p>
 This macro checks to see if the given flag is set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -379,8 +406,11 @@
 <p>
 This macro sets the given bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -401,8 +431,11 @@
 <p>
 This macro usets the given bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -424,8 +457,11 @@
 Check if <em class="parameter"><code>obj</code></em> is lockable. A lockable object can be locked and unlocked with
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-lock" title="gst_mini_object_lock ()"><code class="function">gst_mini_object_lock()</code></a> and <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unlock" title="gst_mini_object_unlock ()"><code class="function">gst_mini_object_unlock()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
@@ -447,8 +483,11 @@
 <p>
 Flags used when locking miniobjects
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-LOCK-FLAG-READ:CAPS"></a><span class="term"><code class="literal">GST_LOCK_FLAG_READ</code></span></p></td>
@@ -490,8 +529,11 @@
 <p>
 Get access to the reference count field of the mini-object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
@@ -507,8 +549,11 @@
 <p>
 Get the reference count value of the mini-object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
@@ -523,8 +568,11 @@
 <p>
 Define a new mini-object type with the given name
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>TypeName</code></em> :</span></p></td>
@@ -550,8 +598,11 @@
 Initializes a mini-object with the desired type and copy/dispose/free
 functions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
@@ -600,8 +651,11 @@
 of memcpy operations in a pipeline, especially if the miniobject
 is a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
@@ -623,8 +677,11 @@
 Decreases the reference count of the mini-object, possibly freeing
 the mini-object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
 <td>the mini-object</td>
@@ -645,8 +702,11 @@
 (<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> adds a strong reference, that is, forces the object
 to stay alive).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -673,8 +733,11 @@
 <p>
 Removes a weak reference callback from a mini object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -700,8 +763,11 @@
 <p>
 Lock the mini-object with the specified access mode in <em class="parameter"><code>flags</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -727,8 +793,11 @@
 <p>
 Unlock the mini-object with the specified access mode in <em class="parameter"><code>flags</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -759,8 +828,11 @@
 Modification of a mini-object should only be done after verifying that it
 is writable.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
@@ -785,8 +857,11 @@
 <p>
 MT safe
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
@@ -812,8 +887,11 @@
 <p>
 MT safe
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
@@ -849,8 +927,11 @@
 when the <em class="parameter"><code>object</code></em> is disposed, or the data is being overwritten by
 a call to <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()"><code class="function">gst_mini_object_set_qdata()</code></a> with the same <em class="parameter"><code>quark</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -882,8 +963,11 @@
 This function gets back user data pointers stored via
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()"><code class="function">gst_mini_object_set_qdata()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -911,8 +995,11 @@
 and removes the data from <em class="parameter"><code>object</code></em> without invoking its <code class="function">destroy()</code> function (if
 any was set).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -943,8 +1030,11 @@
 <p>
 Either <em class="parameter"><code>newdata</code></em> and the value pointed to by <em class="parameter"><code>olddata</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>olddata</code></em> :</span></p></td>
@@ -978,8 +1068,11 @@
 <p>
 Either <em class="parameter"><code>newdata</code></em> and the value pointed to by <em class="parameter"><code>olddata</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>olddata</code></em> :</span></p></td>
@@ -1007,8 +1100,11 @@
 Replace the current <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> pointer to by <em class="parameter"><code>olddata</code></em> with NULL and
 return the old value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>olddata</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstParamSpec.html b/docs/gst/html/gstreamer-GstParamSpec.html
index f160059..136e40f 100644
--- a/docs/gst/html/gstreamer-GstParamSpec.html
+++ b/docs/gst/html/gstreamer-GstParamSpec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstParamSpec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -136,8 +136,11 @@
 A GParamSpec derived structure that contains the meta data for fractional
 properties.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstParamSpecFraction.parent-instance"></a>parent_instance</code></em>;</span></p></td>
@@ -189,8 +192,11 @@
 used in connection with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-class-install-property"><code class="function">g_object_class_install_property()</code></a> in a GObjects's
 instance_init function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstParse.html b/docs/gst/html/gstreamer-GstParse.html
index a073684..c95f148 100644
--- a/docs/gst/html/gstreamer-GstParse.html
+++ b/docs/gst/html/gstreamer-GstParse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstParse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -92,8 +92,11 @@
 <p>
 Get the error quark used by the parsing subsystem.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the quark of the parse errors.</td>
@@ -125,8 +128,11 @@
 <p>
 The different parsing errors that can occur.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PARSE-ERROR-SYNTAX:CAPS"></a><span class="term"><code class="literal">GST_PARSE_ERROR_SYNTAX</code></span></p></td>
@@ -185,8 +191,11 @@
 <p>
 Parsing options.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PARSE-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_PARSE_FLAG_NONE</code></span></p></td>
@@ -214,8 +223,11 @@
 the <em class="parameter"><code>error</code></em> is set. In this case there was a recoverable parsing error and you
 can try to play the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline_description</code></em> :</span></p></td>
@@ -248,8 +260,11 @@
 the <em class="parameter"><code>error</code></em> is set. In this case there was a recoverable parsing error and you
 can try to play the pipeline.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pipeline_description</code></em> :</span></p></td>
@@ -290,8 +305,11 @@
 <em class="parameter"><code>error</code></em> will contain an error message if an erroneuos pipeline is specified.
 An error does not mean that the pipeline could not be constructed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>argv</code></em> :</span></p></td>
@@ -323,8 +341,11 @@
 <em class="parameter"><code>error</code></em> will contain an error message if an erroneous pipeline is specified.
 An error does not mean that the pipeline could not be constructed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>argv</code></em> :</span></p></td>
@@ -374,8 +395,11 @@
 and want them all ghosted, you will have to create the ghost pads
 yourself).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin_description</code></em> :</span></p></td>
@@ -418,8 +442,11 @@
 and want them all ghosted, you will have to create the ghost pads
 yourself).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin_description</code></em> :</span></p></td>
@@ -465,8 +492,11 @@
 <p>
 Free-function: gst_parse_context_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a newly-allocated parse context. Free with
@@ -482,8 +512,11 @@
 <p>
 Frees a parse context previously allocated with <a class="link" href="gstreamer-GstParse.html#gst-parse-context-new" title="gst_parse_context_new ()"><code class="function">gst_parse_context_new()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstParse.html#GstParseContext" title="GstParseContext"><span class="type">GstParseContext</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -501,8 +534,11 @@
 or <a class="link" href="gstreamer-GstParse.html#gst-parse-launchv-full" title="gst_parse_launchv_full ()"><code class="function">gst_parse_launchv_full()</code></a>. Will only return results if an error code
 of <a class="link" href="gstreamer-GstParse.html#GST-PARSE-ERROR-NO-SUCH-ELEMENT:CAPS"><code class="literal">GST_PARSE_ERROR_NO_SUCH_ELEMENT</code></a> was returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstPoll.html b/docs/gst/html/gstreamer-GstPoll.html
index d83e95b..fea00f3 100644
--- a/docs/gst/html/gstreamer-GstPoll.html
+++ b/docs/gst/html/gstreamer-GstPoll.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPoll</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -131,8 +131,11 @@
 <p>
 A file descriptor object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="GstPollFD.fd"></a>fd</code></em>;</span></p></td>
 <td>a file descriptor</td>
@@ -159,8 +162,11 @@
 <p>
 Add a file descriptor to the file descriptor set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -186,8 +192,11 @@
 <p>
 Check if <em class="parameter"><code>fd</code></em> in <em class="parameter"><code>set</code></em> has data to be read.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -213,8 +222,11 @@
 <p>
 Check if <em class="parameter"><code>fd</code></em> in <em class="parameter"><code>set</code></em> can be used for writing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -242,8 +254,11 @@
 Control whether the descriptor <em class="parameter"><code>fd</code></em> in <em class="parameter"><code>set</code></em> will be monitored for
 readability.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -275,8 +290,11 @@
 Control whether the descriptor <em class="parameter"><code>fd</code></em> in <em class="parameter"><code>set</code></em> will be monitored for
 writability.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -306,8 +324,11 @@
 <p>
 Check if <em class="parameter"><code>fd</code></em> in <em class="parameter"><code>set</code></em> has closed the connection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -333,8 +354,11 @@
 <p>
 Check if <em class="parameter"><code>fd</code></em> in <em class="parameter"><code>set</code></em> has an error.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -368,8 +392,11 @@
 might not allow querying the fd more than once between calls to one of
 the re-enabling operations.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -390,8 +417,11 @@
 Initializes <em class="parameter"><code>fd</code></em>. Alternatively you can initialize it with
 <a class="link" href="gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS" title="GST_POLL_FD_INIT"><span class="type">GST_POLL_FD_INIT</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstPoll.html#GstPollFD" title="GstPollFD"><span class="type">GstPollFD</span></a>
@@ -406,8 +436,11 @@
 <p>
 Free a file descriptor set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
 <td>a file descriptor set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -427,8 +460,11 @@
 <p>
 Free-function: gst_poll_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>controllable</code></em> :</span></p></td>
@@ -458,8 +494,11 @@
 <p>
 Free-function: gst_poll_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.
@@ -477,8 +516,11 @@
 Get a GPollFD for the reading part of the control socket. This is useful when
 integrating with a GSource and GMainLoop.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -501,8 +543,11 @@
 <p>
 Remove a file descriptor from the file descriptor set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -531,8 +576,11 @@
 <p>
 If <em class="parameter"><code>set</code></em> is not controllable, then this call will have no effect.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>.</td>
@@ -549,8 +597,11 @@
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-wait" title="gst_poll_wait ()"><code class="function">gst_poll_wait()</code></a> will be affected by <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -580,8 +631,11 @@
 <p>
 Unsetting the flushing state will restore normal operation of <em class="parameter"><code>set</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -613,8 +667,11 @@
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-new-timer" title="gst_poll_new_timer ()"><code class="function">gst_poll_new_timer()</code></a>, where it is allowed to have multiple threads waiting
 simultaneously.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -642,8 +699,11 @@
 This function is mostly useful for timer <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a> objects created with
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-new-timer" title="gst_poll_new_timer ()"><code class="function">gst_poll_new_timer()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
@@ -673,8 +733,11 @@
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-read-control" title="gst_poll_read_control ()"><code class="function">gst_poll_read_control()</code></a> have been performed, calls to <a class="link" href="gstreamer-GstPoll.html#gst-poll-wait" title="gst_poll_wait ()"><code class="function">gst_poll_wait()</code></a> will
 block again until their timeout expired.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>set</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstQuery.html b/docs/gst/html/gstreamer-GstQuery.html
index fc2bc12..4c13eca 100644
--- a/docs/gst/html/gstreamer-GstQuery.html
+++ b/docs/gst/html/gstreamer-GstQuery.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstQuery</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -214,6 +214,9 @@
                                                          <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-remove-nth-allocation-pool" title="gst_query_remove_nth_allocation_pool ()">gst_query_remove_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>);
 <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="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="GstAllocator.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
@@ -227,6 +230,9 @@
                                                          <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="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="GstAllocator.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-remove-nth-allocation-param" title="gst_query_remove_nth_allocation_param ()">gst_query_remove_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>);
 <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><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 class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *params</code></em>);
@@ -264,6 +270,17 @@
                                                          <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 class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a> flags</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-context" title="gst_query_new_context ()">gst_query_new_context</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-context" title="gst_query_set_context ()">gst_query_set_context</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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-context" title="gst_query_parse_context ()">gst_query_parse_context</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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-context-type" title="gst_query_add_context_type ()">gst_query_add_context_type</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> *context_type</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-context-types" title="gst_query_get_n_context_types ()">gst_query_get_n_context_types</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-context-type" title="gst_query_parse_nth_context_type ()">gst_query_parse_nth_context_type</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> i</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **context_type</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -284,7 +301,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp40146848"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
+<a name="idp39942192"></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>
@@ -340,8 +357,11 @@
 <p>
 The <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstQuery.mini-object"></a>mini_object</code></em>;</span></p></td>
@@ -369,8 +389,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -407,8 +430,11 @@
 when making custom query types, use this macro with the num and
 the given flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
@@ -442,14 +468,18 @@
   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_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_QUERY_CONTEXT      = GST_QUERY_MAKE_TYPE (190, FLAG(DOWNSTREAM))
 } GstQueryType;
 </pre>
 <p>
 Standard predefined Query types
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-QUERY-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_QUERY_UNKNOWN</code></span></p></td>
@@ -541,6 +571,11 @@
 <td>wait till all serialized data is consumed downstream
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-QUERY-CONTEXT:CAPS"></a><span class="term"><code class="literal">GST_QUERY_CONTEXT</code></span></p></td>
+<td>query the pipeline-local context from downstream
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -552,8 +587,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
 <td>the query to query</td>
@@ -568,8 +606,11 @@
 <p>
 Get a constant string representation of 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
 <td>the query to query</td>
@@ -584,8 +625,11 @@
 <p>
 Check if an query can travel upstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the query to query</td>
@@ -600,8 +644,11 @@
 <p>
 Check if an query can travel downstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the query to query</td>
@@ -616,8 +663,11 @@
 <p>
 Check if an query is serialized with the data stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
 <td>the query to query</td>
@@ -631,8 +681,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -653,8 +706,11 @@
 <p>
 Get a printable name for the given query type. Do not modify or free.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -674,8 +730,11 @@
 <p>
 Get the unique quark for the given query type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -695,8 +754,11 @@
 <p>
 Increases the refcount of the given query by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
@@ -717,8 +779,11 @@
 Decreases the refcount of the query. If the refcount reaches 0, the query
 will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> to decrease the refcount of.</td>
@@ -735,8 +800,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
@@ -758,8 +826,11 @@
 <p>
 Makes a writable query from the given query.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
@@ -782,8 +853,11 @@
 <p>
 Tests if you can safely write data into a query's structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
@@ -805,8 +879,11 @@
 <p>
 Either <em class="parameter"><code>new_query</code></em> or the <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> pointed to by <em class="parameter"><code>old_query</code></em> may be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>old_query</code></em> :</span></p></td>
@@ -836,8 +913,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -866,8 +946,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -892,8 +975,11 @@
 <p>
 Get the structure of a query.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -924,8 +1010,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src_format</code></em> :</span></p></td>
@@ -959,8 +1048,11 @@
 <p>
 Answer a convert query by setting the requested values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1000,8 +1092,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1046,8 +1141,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1070,8 +1168,11 @@
 <p>
 Answer a position query by setting the requested value in the given format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1099,8 +1200,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1133,8 +1237,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1157,8 +1264,11 @@
 <p>
 Answer a duration query by setting the requested value in the given format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1186,8 +1296,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1221,8 +1334,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -1240,8 +1356,11 @@
 <p>
 Parse a latency query answer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1276,8 +1395,11 @@
 <p>
 Answer a latency query by setting the requested values in the given format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1310,8 +1432,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1336,8 +1461,11 @@
 <p>
 Set the seeking query result fields in <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1376,8 +1504,11 @@
 other results into the passed parameters, if the respective parameters
 are non-NULL
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1419,8 +1550,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1438,8 +1572,11 @@
 Set the formats query result fields in <em class="parameter"><code>query</code></em>. The number of formats passed
 must be equal to <em class="parameter"><code>n_formats</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1467,8 +1604,11 @@
 Set the formats query result fields in <em class="parameter"><code>query</code></em>. The number of formats passed
 in the <em class="parameter"><code>formats</code></em> array must be equal to <em class="parameter"><code>n_formats</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1496,8 +1636,11 @@
 <p>
 Parse the number of formats in the formats <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1523,8 +1666,11 @@
 <em class="parameter"><code>format</code></em>. If the list contains less elements than <em class="parameter"><code>nth</code></em>, <em class="parameter"><code>format</code></em> will be
 set to GST_FORMAT_UNDEFINED.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1556,8 +1702,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1593,8 +1742,11 @@
 negative rates, playback will actually happen from <em class="parameter"><code>stop_value</code></em> to
 <em class="parameter"><code>start_value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1635,8 +1787,11 @@
 <p>
 See <a class="link" href="gstreamer-GstQuery.html#gst-query-set-segment" title="gst_query_set_segment ()"><code class="function">gst_query_set_segment()</code></a> for an explanation of the function arguments.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1697,8 +1852,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
@@ -1721,8 +1879,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1744,8 +1905,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1768,8 +1932,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1793,8 +1960,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -1818,8 +1988,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1841,8 +2014,11 @@
 <p>
 Set <em class="parameter"><code>result</code></em> as the result for the <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1864,8 +2040,11 @@
 <p>
 Parse the result from <em class="parameter"><code>query</code></em> and store in <em class="parameter"><code>result</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1892,8 +2071,11 @@
 <p>
 The different types of buffering methods.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-BUFFERING-STREAM:CAPS"></a><span class="term"><code class="literal">GST_BUFFERING_STREAM</code></span></p></td>
@@ -1929,8 +2111,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1954,8 +2139,11 @@
 Set the percentage of buffered data. This is a value between 0 and 100.
 The <em class="parameter"><code>busy</code></em> indicator is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the buffering is in progress.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -1982,8 +2170,11 @@
 Get the percentage of buffered data. This is a value between 0 and 100.
 The <em class="parameter"><code>busy</code></em> indicator is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the buffering is in progress.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2013,8 +2204,11 @@
 <p>
 Configures the buffering stats values in <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2050,8 +2244,11 @@
 <p>
 Extracts the buffering stats values from <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2092,8 +2289,11 @@
 <p>
 Set the available query result fields in <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2132,8 +2332,11 @@
 other results into the passed parameters, if the respective parameters
 are non-NULL
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2175,8 +2378,11 @@
 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2206,8 +2412,11 @@
 Retrieve the number of values currently stored in the
 buffered-ranges array of the query's structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2232,8 +2441,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2273,8 +2485,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -2292,8 +2507,11 @@
 allocated string, if the respective parameters are non-NULL.
 Free the string 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2317,8 +2535,11 @@
 <p>
 Answer a URI query by setting the requested URI.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2342,8 +2563,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -2372,8 +2596,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2404,8 +2631,11 @@
 <p>
 Set the pool parameters in <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2439,8 +2669,11 @@
 Retrieve the number of values currently stored in the
 pool array of the query's structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2469,8 +2702,11 @@
 <p>
 Unref <em class="parameter"><code>pool</code></em> with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> when it's not needed any more.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2515,8 +2751,11 @@
 <p>
 Set the pool parameters in <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
@@ -2548,6 +2787,33 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-query-remove-nth-allocation-pool"></a><h3>gst_query_remove_nth_allocation_pool ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_remove_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>);</pre>
+<p>
+Remove the allocation pool at <em class="parameter"><code>index</code></em> of the allocation pool array.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 allocation pool array to remove</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <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="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
@@ -2555,8 +2821,11 @@
 <p>
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2586,10 +2855,15 @@
 </p>
 <p>
 If no memory allocator is specified, the downstream element can handle
-the default memory allocator.
+the default memory allocator. The first memory allocator in the query
+should be generic and allow mapping to system memory, all following
+allocators should be ordered by preference with the preferred one first.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2615,8 +2889,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2629,7 +2906,7 @@
 </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="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>variable to hold 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="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2651,8 +2928,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2678,6 +2958,33 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-query-remove-nth-allocation-param"></a><h3>gst_query_remove_nth_allocation_param ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_remove_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>);</pre>
+<p>
+Remove the allocation param at <em class="parameter"><code>index</code></em> of the allocation param array.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 allocation param array to remove</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>,
@@ -2685,8 +2992,11 @@
 <p>
 Add <em class="parameter"><code>api</code></em> with <em class="parameter"><code>params</code></em> as one of the supported metadata API to <em class="parameter"><code>query</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2713,8 +3023,11 @@
 Retrieve the number of values currently stored in the
 meta API array of the query's structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2738,8 +3051,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2771,8 +3087,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2797,8 +3116,11 @@
 <em class="parameter"><code>index</code></em> will contain the index where the requested API and the flags can be
 found.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2825,15 +3147,19 @@
 <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)
+  GST_SCHEDULING_FLAG_SEEKABLE          = (1 &lt;&lt; 0),
+  GST_SCHEDULING_FLAG_SEQUENTIAL        = (1 &lt;&lt; 1),
+  GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED = (1 &lt;&lt; 2)
 } GstSchedulingFlags;
 </pre>
 <p>
 The different scheduling flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -2845,6 +3171,11 @@
 <td>if sequential access is recommended
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-SCHEDULING-FLAG-BANDWIDTH-LIMITED:CAPS"></a><span class="term"><code class="literal">GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED</code></span></p></td>
+<td>if bandwidth is limited and buffering possible
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2858,8 +3189,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -2878,8 +3212,11 @@
 <p>
 Set the scheduling properties.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2920,8 +3257,11 @@
 <p>
 Set the scheduling properties.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2954,8 +3294,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -2978,8 +3321,11 @@
 Retrieve the number of values currently stored in the
 scheduling mode array of the query's structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -3002,8 +3348,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -3043,8 +3392,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -3073,8 +3425,11 @@
 Check if <em class="parameter"><code>query</code></em> has scheduling mode set and <em class="parameter"><code>flags</code></em> is set in
 query scheduling flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
@@ -3107,8 +3462,11 @@
 <p>
 Free-function: gst_query_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -3116,6 +3474,163 @@
 </tr></tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-new-context"></a><h3>gst_query_new_context ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_context               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Constructs a new query object for querying the pipeline-local context.
+</p>
+<p>
+Free-function: gst_query_unref
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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-set-context"></a><h3>gst_query_set_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_context               (<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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
+<p>
+Answer a context query by setting the requested context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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_CONTEXT</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>the requested <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-context"></a><h3>gst_query_parse_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_context             (<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-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a> **context</code></em>);</pre>
+<p>
+Get the context from the context <em class="parameter"><code>query</code></em>. The context remains valid as long as
+<em class="parameter"><code>query</code></em> remains valid.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>context</code></em> :</span></p></td>
+<td>A pointer to store the <a class="link" href="gstreamer-GstContext.html#GstContext" title="GstContext"><span class="type">GstContext</span></a>. <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-add-context-type"></a><h3>gst_query_add_context_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_context_type          (<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> *context_type</code></em>);</pre>
+<p>
+Add a new context type to <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_NEED_CONTEXT type query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context_type</code></em> :</span></p></td>
+<td>a context type</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-get-n-context-types"></a><h3>gst_query_get_n_context_types ()</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_context_types       (<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
+context-types array of the query's structure.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_NEED_CONTEXT type query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the context-types 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-context-type"></a><h3>gst_query_parse_nth_context_type ()</h3>
+<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_context_type    (<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> i</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **context_type</code></em>);</pre>
+<p>
+Parse a context type from an existing GST_QUERY_NEED_CONTEXT query
+from <em class="parameter"><code>index</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_NEED_CONTEXT type query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context_type</code></em> :</span></p></td>
+<td>the context type, 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>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the parsing succeeded.</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
index 23fba64..230b214 100644
--- a/docs/gst/html/gstreamer-GstSample.html
+++ b/docs/gst/html/gstreamer-GstSample.html
@@ -3,10 +3,10 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstCapsFeatures.html" title="GstCapsFeatures">
 <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">
@@ -14,7 +14,7 @@
 <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-GstCapsFeatures.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>
@@ -81,8 +81,11 @@
 <p>
 Get the buffer associated with <em class="parameter"><code>sample</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -105,8 +108,11 @@
 <p>
 Get the caps associated with <em class="parameter"><code>sample</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -129,8 +135,11 @@
 <p>
 Get extra information associated with <em class="parameter"><code>sample</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -153,8 +162,11 @@
 <p>
 Get the segment associated with <em class="parameter"><code>sample</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -183,8 +195,11 @@
 <p>
 Free-function: gst_sample_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -222,8 +237,11 @@
 <p>
 Increases the refcount of the given sample by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -247,8 +265,11 @@
 Decreases the refcount of the sample. If the refcount reaches 0, the
 sample will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
diff --git a/docs/gst/html/gstreamer-GstSegment.html b/docs/gst/html/gstreamer-GstSegment.html
index 4c29d7a..bcb8b80 100644
--- a/docs/gst/html/gstreamer-GstSegment.html
+++ b/docs/gst/html/gstreamer-GstSegment.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstSegment</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -88,7 +88,7 @@
 <p>
 The structure can be used for two purposes:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>performing seeks (handling seek events)</p></li>
 <li class="listitem"><p>tracking playback regions (handling newsegment events)</p></li>
 </ul></div>
@@ -171,8 +171,11 @@
 A helper structure that holds the configured region of
 interest in a media file.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstSegment.html#GstSegmentFlags" title="enum GstSegmentFlags"><span class="type">GstSegmentFlags</span></a> <em class="structfield"><code><a name="GstSegment.flags"></a>flags</code></em>;</span></p></td>
@@ -237,8 +240,11 @@
 Flags for the GstSegment structure. Currently mapped to the corresponding
 values of the seek flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-SEGMENT-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_SEGMENT_FLAG_NONE</code></span></p></td>
@@ -291,8 +297,11 @@
 Note that when <em class="parameter"><code>stop</code></em> is -1, <em class="parameter"><code>clip_stop</code></em> will be set to the end of the
 segment. Depending on the use case, this may or may not be what you want.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -342,8 +351,11 @@
 <p>
 Initialize <em class="parameter"><code>segment</code></em> to its default values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -367,8 +379,11 @@
 <p>
 Free-function: gst_segment_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>, free with <a class="link" href="gstreamer-GstSegment.html#gst-segment-free" title="gst_segment_free ()"><code class="function">gst_segment_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -386,8 +401,11 @@
 <p>
 Free-function: gst_segment_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -409,8 +427,11 @@
 <p>
 Free the allocated segment <em class="parameter"><code>segment</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>. <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>
@@ -464,8 +485,11 @@
 position field. This field can be FALSE if, for example, only the <em class="parameter"><code>rate</code></em>
 has been changed but not the playback position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -530,8 +554,11 @@
 <p>
 This function returns -1 if the position is outside of <em class="parameter"><code>segment</code></em> start and stop.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -572,8 +599,11 @@
 The stream time is always between 0 and the total duration of the
 media stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -605,8 +635,11 @@
 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -638,8 +671,11 @@
 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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
@@ -670,8 +706,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstStructure.html b/docs/gst/html/gstreamer-GstStructure.html
index 4538ac2..5cbf6c8 100644
--- a/docs/gst/html/gstreamer-GstStructure.html
+++ b/docs/gst/html/gstreamer-GstStructure.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstStructure</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -58,6 +58,7 @@
 <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-new-from-string" title="gst_structure_new_from_string ()">gst_structure_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> *string</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>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstStructure.html#gst-structure-free" title="gst_structure_free ()">gst_structure_free</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>);
 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-GstStructure.html#gst-structure-get-name" title="gst_structure_get_name ()">gst_structure_get_name</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>);
@@ -258,8 +259,11 @@
 <p>
 The GstStructure object. Most fields are private.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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="GstStructure.type"></a>type</code></em>;</span></p></td>
 <td>the GType of a structure</td>
@@ -276,8 +280,11 @@
 A function that will be called in <a class="link" href="gstreamer-GstStructure.html#gst-structure-foreach" title="gst_structure_foreach ()"><code class="function">gst_structure_foreach()</code></a>. The function may
 not modify <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>field_id</code></em> :</span></p></td>
@@ -309,8 +316,11 @@
 A function that will be called in <a class="link" href="gstreamer-GstStructure.html#gst-structure-map-in-place" title="gst_structure_map_in_place ()"><code class="function">gst_structure_map_in_place()</code></a>. The function
 may modify <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>field_id</code></em> :</span></p></td>
@@ -345,8 +355,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -370,8 +383,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>quark</code></em> :</span></p></td>
@@ -400,8 +416,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -440,8 +459,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -481,8 +503,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name_quark</code></em> :</span></p></td>
@@ -506,6 +531,39 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-structure-new-from-string"></a><h3>gst_structure_new_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_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> *string</code></em>);</pre>
+<p>
+Creates a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> from a string representation.
+If end is not NULL, a pointer to the place inside the given string
+where parsing ended will be returned.
+</p>
+<p>
+Free-function: gst_structure_free
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
+<td>a string representation of 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>a new <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> or NULL when the string could
+not be parsed. Free with <a class="link" href="gstreamer-GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> 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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-structure-copy"></a><h3>gst_structure_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_copy                  (<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>);</pre>
 <p>
@@ -514,8 +572,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -523,7 +584,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="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</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 new <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>
 </tbody>
@@ -537,8 +598,11 @@
 Frees a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> and all its fields and values. The structure must not
 have a parent when this function is called.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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 free. <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>
@@ -553,8 +617,11 @@
 <p>
 Get the name of <em class="parameter"><code>structure</code></em> as a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -576,8 +643,11 @@
 <p>
 Checks if the structure has the given name
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -605,8 +675,11 @@
 provided is copied before being used. It must not be empty, start with a
 letter and can be followed by letters, numbers and any of "/-_.:".
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -627,8 +700,11 @@
 <p>
 Get the name of <em class="parameter"><code>structure</code></em> as a GQuark.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -667,8 +743,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -703,8 +782,11 @@
 valist-variant of <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()"><code class="function">gst_structure_id_get()</code></a>. Look at the documentation of
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()"><code class="function">gst_structure_id_get()</code></a> for more details.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -734,8 +816,11 @@
 <p>
 Get the value of the field with GQuark <em class="parameter"><code>field</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -765,8 +850,11 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -795,8 +883,11 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -833,8 +924,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -869,8 +963,11 @@
 valist-variant of <a class="link" href="gstreamer-GstStructure.html#gst-structure-get" title="gst_structure_get ()"><code class="function">gst_structure_get()</code></a>. Look at the documentation of
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-get" title="gst_structure_get ()"><code class="function">gst_structure_get()</code></a> for more details.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -900,8 +997,11 @@
 <p>
 Get the value of the field with name <em class="parameter"><code>fieldname</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -930,8 +1030,11 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -960,8 +1063,11 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed. The function will take ownership of <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -991,8 +1097,11 @@
 Variable arguments should be in the form field name, field type
 (as a GType), value(s).  The last variable argument should be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1019,8 +1128,11 @@
 <p>
 va_list form of <a class="link" href="gstreamer-GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1051,8 +1163,11 @@
 quark values.
 The last variable argument must be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1079,8 +1194,11 @@
 <p>
 va_list form of <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1107,8 +1225,11 @@
 Removes the field with the given name.  If the field with the given
 name does not exist, the structure is unchanged.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1132,8 +1253,11 @@
 Removes the fields with the given names. If a field does not exist, the
 argument is ignored.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1160,8 +1284,11 @@
 <p>
 va_list form of <a class="link" href="gstreamer-GstStructure.html#gst-structure-remove-fields" title="gst_structure_remove_fields ()"><code class="function">gst_structure_remove_fields()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1186,8 +1313,11 @@
 <p>
 Removes all fields in a GstStructure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>
@@ -1205,8 +1335,11 @@
 value it contains.  If the field is not found, G_TYPE_INVALID is
 returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1234,8 +1367,11 @@
 Calls the provided function once for each field in the <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>. The
 function must not modify the fields. Also see <a class="link" href="gstreamer-GstStructure.html#gst-structure-map-in-place" title="gst_structure_map_in_place ()"><code class="function">gst_structure_map_in_place()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1267,8 +1403,11 @@
 <p>
 Get the number of fields in the structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1290,8 +1429,11 @@
 <p>
 Check if <em class="parameter"><code>structure</code></em> contains a field named <em class="parameter"><code>fieldname</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1318,8 +1460,11 @@
 <p>
 Check if <em class="parameter"><code>structure</code></em> contains a field named <em class="parameter"><code>fieldname</code></em> and with GType <em class="parameter"><code>type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1349,8 +1494,11 @@
 <p>
 Tests if the two <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> are equal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure1</code></em> :</span></p></td>
@@ -1377,8 +1525,11 @@
 structure name and for all fields that are existing in <em class="parameter"><code>superset</code></em>,
 <em class="parameter"><code>subset</code></em> has a value that is a subset of the value in <em class="parameter"><code>superset</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>subset</code></em> :</span></p></td>
@@ -1408,8 +1559,11 @@
 Tries intersecting <em class="parameter"><code>struct1</code></em> and <em class="parameter"><code>struct2</code></em> and reports whether the result
 would not be empty.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>struct1</code></em> :</span></p></td>
@@ -1437,8 +1591,11 @@
 <p>
 Interesects <em class="parameter"><code>struct1</code></em> and <em class="parameter"><code>struct2</code></em> and returns the intersection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>struct1</code></em> :</span></p></td>
@@ -1466,8 +1623,11 @@
 <p>
 Check if <em class="parameter"><code>structure</code></em> contains a field named <em class="parameter"><code>field</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1495,8 +1655,11 @@
 <p>
 Check if <em class="parameter"><code>structure</code></em> contains a field named <em class="parameter"><code>field</code></em> and with GType <em class="parameter"><code>type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1530,8 +1693,11 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1567,8 +1733,11 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1605,8 +1774,11 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1643,8 +1815,11 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1683,8 +1858,11 @@
 The string should not be modified, and remains valid until the next
 call to a gst_structure_*() function with the given structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1720,8 +1898,11 @@
 inconsistent with e.g. <a class="link" href="gstreamer-GstStructure.html#gst-structure-get-string" title="gst_structure_get_string ()"><code class="function">gst_structure_get_string()</code></a> which doesn't return a
 copy of the string).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1763,8 +1944,11 @@
 (note: this is inconsistent with e.g. <a class="link" href="gstreamer-GstStructure.html#gst-structure-get-string" title="gst_structure_get_string ()"><code class="function">gst_structure_get_string()</code></a>
 which doesn't return a copy of the string).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1800,8 +1984,11 @@
 of the given field.  Caller is responsible for making sure the field exists
 and has the correct type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1838,8 +2025,11 @@
 given field.  Caller is responsible for making sure the field exists,
 has the correct type and that the enumtype is correct.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1880,8 +2070,11 @@
 corresponding to the value of the given field.  Caller is responsible
 for making sure the field exists and has the correct type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1922,8 +2115,11 @@
 contrast to <a class="link" href="gstreamer-GstStructure.html#gst-structure-foreach" title="gst_structure_foreach ()"><code class="function">gst_structure_foreach()</code></a>, the function may modify but not delete the
 fields. The structure must be mutable.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1956,8 +2152,11 @@
 <p>
 Get the name of the given field number, counting from 0 onwards.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -1986,8 +2185,11 @@
 called by code implementing parent objects of <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>, as described in
 the MT Refcounting section of the design documents.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2034,8 +2236,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2064,8 +2269,11 @@
 <p>
 Free-function: gst_structure_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
@@ -2073,7 +2281,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>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer 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>][skip]</span>
 </td>
 </tr>
 <tr>
@@ -2093,8 +2301,11 @@
 Fixate all values in <em class="parameter"><code>structure</code></em> using <a class="link" href="gstreamer-GstValue.html#gst-value-fixate" title="gst_value_fixate ()"><code class="function">gst_value_fixate()</code></a>.
 <em class="parameter"><code>structure</code></em> will be modified in-place and should be writable.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>
@@ -2110,8 +2321,11 @@
 <p>
 Fixates a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> by changing the given field with its fixated value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2141,8 +2355,11 @@
 Fixates a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> by changing the given field to the nearest
 integer to <em class="parameter"><code>target</code></em> that is a subset of the existing field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2176,8 +2393,11 @@
 Fixates a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> by changing the given field to the nearest
 double to <em class="parameter"><code>target</code></em> that is a subset of the existing field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2213,8 +2433,11 @@
 fraction to <em class="parameter"><code>target_numerator</code></em>/<em class="parameter"><code>target_denominator</code></em> that is a subset
 of the existing field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2251,8 +2474,11 @@
 Fixates a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> by changing the given <em class="parameter"><code>field_name</code></em> field to the given
 <em class="parameter"><code>target</code></em> boolean if that field is not fixed yet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
@@ -2285,8 +2511,11 @@
 Fixates a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> by changing the given <em class="parameter"><code>field_name</code></em> field to the given
 <em class="parameter"><code>target</code></em> string if that field is not fixed yet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstTagList.html b/docs/gst/html/gstreamer-GstTagList.html
index 841850c..fa1c675 100644
--- a/docs/gst/html/gstreamer-GstTagList.html
+++ b/docs/gst/html/gstreamer-GstTagList.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTagList</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -324,8 +324,11 @@
 <p>
 Object describing tags / metadata.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstTagList.mini-object"></a>mini_object</code></em>;</span></p></td>
 <td>the parent type</td>
@@ -359,7 +362,7 @@
 <p>
 </p>
 <div class="table">
-<a name="idp44880240"></a><p class="title"><b>Table 1. merge mode</b></p>
+<a name="idp45082624"></a><p class="title"><b>Table 1. merge mode</b></p>
 <div class="table-contents"><table summary="merge mode" border="1">
 <colgroup>
 <col>
@@ -423,8 +426,11 @@
 </div>
 <p><br class="table-break">
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TAG-MERGE-UNDEFINED:CAPS"></a><span class="term"><code class="literal">GST_TAG_MERGE_UNDEFINED</code></span></p></td>
@@ -483,8 +489,11 @@
 <p>
 Extra tag flags used when registering tags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TAG-FLAG-UNDEFINED:CAPS"></a><span class="term"><code class="literal">GST_TAG_FLAG_UNDEFINED</code></span></p></td>
@@ -524,8 +533,11 @@
 A function that will be called in <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()"><code class="function">gst_tag_list_foreach()</code></a>. The function may
 not modify the tag list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -553,8 +565,11 @@
 A function for merging multiple values of a tag used when registering
 tags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -581,8 +596,11 @@
 GstTagScope specifies if a taglist applies to the complete
 medium or only to one single stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TAG-SCOPE-STREAM:CAPS"></a><span class="term"><code class="literal">GST_TAG_SCOPE_STREAM</code></span></p></td>
@@ -1456,8 +1474,11 @@
 Two default merge functions are provided: <a class="link" href="gstreamer-GstTagList.html#gst-tag-merge-use-first" title="gst_tag_merge_use_first ()"><code class="function">gst_tag_merge_use_first()</code></a> and
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma" title="gst_tag_merge_strings_with_comma ()"><code class="function">gst_tag_merge_strings_with_comma()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -1505,8 +1526,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -1545,8 +1569,11 @@
 This is a convenience function for the func argument of <a class="link" href="gstreamer-GstTagList.html#gst-tag-register" title="gst_tag_register ()"><code class="function">gst_tag_register()</code></a>.
 It creates a copy of the first value from the list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1570,8 +1597,11 @@
 It concatenates all given strings using a comma. The tag must be registered
 as a G_TYPE_STRING or this function will fail.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1592,8 +1622,11 @@
 <p>
 Checks if the given type is already registered.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1613,8 +1646,11 @@
 <p>
 Gets the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> used for this tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1635,8 +1671,11 @@
 Returns the human-readable name of this tag, You must not change or free
 this string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1657,8 +1696,11 @@
 Returns the human-readable description of this tag, You must not change or
 free this string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1678,8 +1720,11 @@
 <p>
 Gets the flag of <em class="parameter"><code>tag</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1700,8 +1745,11 @@
 Checks if the given tag is fixed. A fixed tag can only contain one value.
 Unfixed tags can contain lists of values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1736,8 +1784,11 @@
 <p>
 Free-function: gst_tag_list_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -1766,8 +1817,11 @@
 <p>
 Free-function: gst_tag_list_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1786,8 +1840,11 @@
 <p>
 Free-function: gst_tag_list_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
@@ -1809,8 +1866,11 @@
 <p>
 Deserializes a tag list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
@@ -1829,6 +1889,10 @@
 <a name="gst-tag-list-free"></a><h3>gst_tag_list_free()</h3>
 <pre class="programlisting">#define gst_tag_list_free(taglist)    gst_tag_list_unref(taglist)
 </pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">gst_tag_list_free</code> is deprecated and should not be used in newly-written code.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1837,8 +1901,11 @@
 <p>
 Gets the scope of <em class="parameter"><code>list</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -1862,8 +1929,11 @@
 Sets the scope of <em class="parameter"><code>list</code></em> to <em class="parameter"><code>scope</code></em>. By default the scope
 of a taglist is stream scope.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -1885,8 +1955,11 @@
 <p>
 Serializes a tag list to a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -1908,8 +1981,11 @@
 <p>
 Checks if the given taglist is empty.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -1930,8 +2006,11 @@
 <p>
 Checks if the two given taglists are equal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list1</code></em> :</span></p></td>
@@ -1965,8 +2044,11 @@
 <p>
 When you are finished with the taglist, call <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a> on it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -1994,8 +2076,11 @@
 it -- either the one made implicitly by e.g. <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>, or via
 taking one explicitly with this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -2015,8 +2100,11 @@
 <p>
 Unref a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>, and and free all its memory when the refcount reaches 0.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
@@ -2032,8 +2120,11 @@
 Tests if you can safely modify <em class="parameter"><code>taglist</code></em>. It is only safe to modify taglist
 when there is only one owner of the taglist - ie, the refcount is 1.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
@@ -2062,8 +2153,11 @@
 taglist that it returns. Don't access the argument after calling this
 function. See also: <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -2088,8 +2182,11 @@
 <p>
 Inserts the tags of the <em class="parameter"><code>from</code></em> list into the first list using the given mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>into</code></em> :</span></p></td>
@@ -2119,8 +2216,11 @@
 <p>
 Free-function: gst_tag_list_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list1</code></em> :</span></p></td>
@@ -2150,8 +2250,11 @@
 <p>
 Checks how many value are stored in this tag list for the given tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2175,8 +2278,11 @@
 <p>
 Get the number of tags in <em class="parameter"><code>list</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2197,8 +2303,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2225,8 +2334,11 @@
 <p>
 Sets the values for the given tags using the specified mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2257,8 +2369,11 @@
 <p>
 Sets the GValue for a given tag using the specified mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2289,8 +2404,11 @@
 <p>
 Sets the GValues for the given tags using the specified mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2321,8 +2439,11 @@
 <p>
 Sets the values for the given tags using the specified mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2353,8 +2474,11 @@
 <p>
 Sets the GValues for the given tags using the specified mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2383,8 +2507,11 @@
 <p>
 Removes the given tag from the taglist.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2407,8 +2534,11 @@
 Calls the given function for each tag inside the tag list. Note that if there
 is no tag, the function won't be called at all.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2437,8 +2567,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2474,8 +2607,11 @@
 with the tag.
 You must <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a> the value after use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -2508,8 +2644,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2543,8 +2682,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2581,8 +2723,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2616,8 +2761,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2654,8 +2802,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2689,8 +2840,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2735,8 +2889,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2773,8 +2930,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2808,8 +2968,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2846,8 +3009,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2881,8 +3047,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2919,8 +3088,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -2954,8 +3126,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3004,8 +3179,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3047,8 +3225,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3091,8 +3272,11 @@
 to be freed by the caller. The returned string is also guaranteed to
 be non-NULL and non-empty.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3129,8 +3313,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3164,8 +3351,11 @@
 Gets the value that is at the given index for the given tag in the given
 list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3206,8 +3396,11 @@
 <p>
 Free-function: g_date_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3246,8 +3439,11 @@
 <p>
 Free-function: g_date_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3288,8 +3484,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3328,8 +3527,11 @@
 <p>
 Free-function: gst_date_time_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3372,8 +3574,11 @@
 <p>
 Free-function: gst_sample_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -3414,8 +3619,11 @@
 <p>
 Free-function: gst_sample_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstToc.html b/docs/gst/html/gstreamer-GstToc.html
index d39f836..a46af2a 100644
--- a/docs/gst/html/gstreamer-GstToc.html
+++ b/docs/gst/html/gstreamer-GstToc.html
@@ -3,7 +3,7 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -139,6 +139,16 @@
 the chapters for the currently playing title if playback of a specific
 title was requested.
 </p>
+<p>
+Applications and plugins should not rely on TOCs having a certain kind of
+structure, but should allow for different alternatives. For example, a
+simple CUE sheet embedded in a file may be presented as a flat list of
+track entries, or could have a top-level edition node (or some other
+alternative type entry) with track entries underneath that node; or even
+multiple top-level edition nodes (or some other alternative type entries)
+each with track entries underneath, in case the source file has extracted
+a track listing from different sources).
+</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstToc.details"></a><h2>Details</h2>
@@ -157,8 +167,11 @@
 <p>
 The scope of a TOC.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TOC-SCOPE-GLOBAL:CAPS"></a><span class="term"><code class="literal">GST_TOC_SCOPE_GLOBAL</code></span></p></td>
@@ -203,8 +216,11 @@
 <p>
 There are two types of TOC entries: alternatives or parts in a sequence.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TOC-ENTRY-TYPE-ANGLE:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_ANGLE</code></span></p></td>
@@ -251,8 +267,11 @@
 <p>
 Create a new <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>scope</code></em> :</span></p></td>
@@ -287,8 +306,11 @@
 <p>
 Copy <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> with all subentries (deep copy).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -313,8 +335,11 @@
 <div class="refsect2">
 <a name="gst-toc-get-scope"></a><h3>gst_toc_get_scope ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocScope" title="enum GstTocScope"><span class="returnvalue">GstTocScope</span></a>         gst_toc_get_scope                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -335,8 +360,11 @@
 <p>
 Gets the list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>toc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -358,8 +386,11 @@
 <p>
 Appends the <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> <em class="parameter"><code>entry</code></em> to <em class="parameter"><code>toc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -380,8 +411,11 @@
 <p>
 Gets the tags for <em class="parameter"><code>toc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -404,8 +438,11 @@
 <p>
 Merge <em class="parameter"><code>tags</code></em> into the existing tags of <em class="parameter"><code>toc</code></em> using <em class="parameter"><code>mode</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -432,8 +469,11 @@
 <p>
 Set a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>toc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -460,8 +500,11 @@
 <p>
 Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -498,8 +541,11 @@
 <p>
 Copy <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> with all subentries (deep copy).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -528,8 +574,11 @@
 <p>
 Find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
@@ -556,8 +605,11 @@
 <p>
 Gets the parent <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -578,8 +630,11 @@
 <p>
 Gets the UID of <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -600,8 +655,11 @@
 <p>
 Gets the parent <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -622,8 +680,11 @@
 <p>
 Gets the sub-entries of <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -645,8 +706,11 @@
 <p>
 Appends the <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> <em class="parameter"><code>subentry</code></em> to <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -669,8 +733,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -704,8 +771,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -730,8 +800,11 @@
 <p>
 Gets the tags for <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -754,8 +827,11 @@
 <p>
 Merge <em class="parameter"><code>tags</code></em> into the existing tags of <em class="parameter"><code>entry</code></em> using <em class="parameter"><code>mode</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -782,8 +858,11 @@
 <p>
 Set a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>entry</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -804,8 +883,11 @@
 <p>
 Converts <em class="parameter"><code>type</code></em> to a string representation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -824,8 +906,11 @@
 <div class="refsect2">
 <a name="gst-toc-entry-get-entry-type"></a><h3>gst_toc_entry_get_entry_type ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="returnvalue">GstTocEntryType</span></a>     gst_toc_entry_get_entry_type        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -844,8 +929,11 @@
 <div class="refsect2">
 <a name="gst-toc-entry-is-alternative"></a><h3>gst_toc_entry_is_alternative ()</h3>
 <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_is_alternative        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
@@ -865,8 +953,11 @@
 <div class="refsect2">
 <a name="gst-toc-entry-is-sequence"></a><h3>gst_toc_entry_is_sequence ()</h3>
 <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_is_sequence           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstTocSetter.html b/docs/gst/html/gstreamer-GstTocSetter.html
index f5fe714..9486980 100644
--- a/docs/gst/html/gstreamer-GstTocSetter.html
+++ b/docs/gst/html/gstreamer-GstTocSetter.html
@@ -3,7 +3,7 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -94,8 +94,11 @@
 <p>
 <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterInterface" title="struct GstTocSetterInterface"><span class="type">GstTocSetterInterface</span></a> interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstTocSetterInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
 <td>parent interface type.</td>
@@ -111,8 +114,11 @@
 Set the given TOC on the setter. Previously setted TOC will be
 unrefed before setting a new one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -134,8 +140,11 @@
 Return current TOC the setter uses. The TOC should not be
 modified without making it writable first.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
@@ -158,8 +167,11 @@
 Reset the internal TOC. Elements should call this from within the
 state-change handler.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
diff --git a/docs/gst/html/gstreamer-GstTypeFind.html b/docs/gst/html/gstreamer-GstTypeFind.html
index 79eb47b..f88bba9 100644
--- a/docs/gst/html/gstreamer-GstTypeFind.html
+++ b/docs/gst/html/gstreamer-GstTypeFind.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTypeFind</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstTocSetter.html" title="GstTocSetter">
@@ -99,8 +99,11 @@
 <p>
 Object that stores typefind callbacks. To use with <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstTypeFind.peek"></a>peek</code></em> ()</span></p></td>
@@ -129,8 +132,11 @@
 <p>
 A function that will be called by typefinding.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>find</code></em> :</span></p></td>
@@ -159,8 +165,11 @@
 The probability of the typefind function. Higher values have more certainty
 in doing a reliable typefind.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TYPE-FIND-NONE:CAPS"></a><span class="term"><code class="literal">GST_TYPE_FIND_NONE</code></span></p></td>
@@ -208,8 +217,11 @@
 the stream. The returned memory is valid until the typefinding function
 returns and must not be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>find</code></em> :</span></p></td>
@@ -244,8 +256,11 @@
 in one call.
 It is up to the caller of the <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> to interpret these values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>find</code></em> :</span></p></td>
@@ -287,8 +302,11 @@
 passed to the vararg function - this applies particularly to gdouble and
 guint64 arguments).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>find</code></em> :</span></p></td>
@@ -323,8 +341,11 @@
 <p>
 Get the length of the data stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>find</code></em> :</span></p></td>
@@ -353,8 +374,11 @@
 registering this function will be available for typefinding.
 This function is typically called during an element's plugin initialization.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstUriHandler.html b/docs/gst/html/gstreamer-GstUriHandler.html
index 6cd2789..e3701fe 100644
--- a/docs/gst/html/gstreamer-GstUriHandler.html
+++ b/docs/gst/html/gstreamer-GstUriHandler.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstUriHandler</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -127,8 +127,11 @@
 <p>
 Any <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> using this interface should implement these methods.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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="GstURIHandlerInterface.parent"></a>parent</code></em>;</span></p></td>
@@ -165,8 +168,11 @@
 <p>
 The different types of URI direction.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-URI-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_URI_UNKNOWN</code></span></p></td>
@@ -199,8 +205,11 @@
 <p>
 Different URI-related errors that can occur.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-URI-ERROR-UNSUPPORTED-PROTOCOL:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_UNSUPPORTED_PROTOCOL</code></span></p></td>
@@ -240,8 +249,11 @@
 <p>
 Tests if the type direction is valid.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
 <td>A <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a>
@@ -258,8 +270,11 @@
 must consist of alphanumeric characters, '+', '-' and '.' and must
 start with a alphabetic character. See RFC 3986 Section 3.1.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
@@ -282,8 +297,11 @@
 that a positive return value does not imply that a subsequent call to
 <a class="link" href="gstreamer-GstUriHandler.html#gst-element-make-from-uri" title="gst_element_make_from_uri ()"><code class="function">gst_element_make_from_uri()</code></a> is guaranteed to work.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -308,8 +326,11 @@
 Tests if the given string is a valid URI identifier. URIs start with a valid
 scheme followed by ":" and maybe a string identifying the location.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
@@ -330,8 +351,11 @@
 <p>
 Checks if the protocol of a given valid URI matches <em class="parameter"><code>protocol</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
@@ -357,8 +381,11 @@
 Extracts the protocol out of a given valid URI. The returned string must be
 freed using <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
@@ -384,8 +411,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
@@ -412,8 +442,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
@@ -447,8 +480,11 @@
 <p>
 On Windows <span class="type">filename</span> should be in UTF-8 encoding.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
@@ -471,8 +507,11 @@
 <p>
 Creates an element for handling the given URI.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -507,8 +546,11 @@
 <p>
 Gets the type of the given URI handler
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
@@ -530,8 +572,11 @@
 Gets the list of protocols supported by <em class="parameter"><code>handler</code></em>. This list may not be
 modified.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
@@ -554,8 +599,11 @@
 <p>
 Gets the currently handled URI.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
@@ -581,8 +629,11 @@
 <p>
 Tries to set the URI of the given handler.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstUtils.html b/docs/gst/html/gstreamer-GstUtils.html
index ae19c23..705af8e 100644
--- a/docs/gst/html/gstreamer-GstUtils.html
+++ b/docs/gst/html/gstreamer-GstUtils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstUtils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -190,8 +190,11 @@
 this macro is not to be used with things that return something, use
 the _WITH_DEFAULT version for that
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent_class_cast</code></em> :</span></p></td>
@@ -216,8 +219,11 @@
 Same as <a class="link" href="gstreamer-GstUtils.html#GST-CALL-PARENT:CAPS" title="GST_CALL_PARENT()"><code class="function">GST_CALL_PARENT()</code></a>, but in case there is no implementation, it
 evaluates to <em class="parameter"><code>def_return</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent_class_cast</code></em> :</span></p></td>
@@ -246,8 +252,11 @@
 <p>
 Read an 8 bit unsigned integer value from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -262,8 +271,11 @@
 <p>
 Read a 16 bit unsigned integer value in little endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -278,8 +290,11 @@
 <p>
 Read a 16 bit unsigned integer value in big endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -289,12 +304,16 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT24-LE:CAPS"></a><h3>GST_READ_UINT24_LE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT24_LE(data)</pre>
+<pre class="programlisting">#define GST_READ_UINT24_LE(data) __gst_slow_read24_le((const guint8 *)(data))
+</pre>
 <p>
 Read a 24 bit unsigned integer value in little endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -304,12 +323,16 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT24-BE:CAPS"></a><h3>GST_READ_UINT24_BE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT24_BE(data)</pre>
+<pre class="programlisting">#define GST_READ_UINT24_BE(data) __gst_slow_read24_be((const guint8 *)(data))
+</pre>
 <p>
 Read a 24 bit unsigned integer value in big endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -324,8 +347,11 @@
 <p>
 Read a 32 bit unsigned integer value in little endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -340,8 +366,11 @@
 <p>
 Read a 32 bit unsigned integer value in big endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -356,8 +385,11 @@
 <p>
 Read a 64 bit unsigned integer value in little endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -372,8 +404,11 @@
 <p>
 Read a 64 bit unsigned integer value in big endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>memory location</td>
@@ -387,8 +422,11 @@
 <p>
 Read a 32 bit float value in little endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -409,8 +447,11 @@
 <p>
 Read a 32 bit float value in big endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -431,8 +472,11 @@
 <p>
 Read a 64 bit double value in little endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -453,8 +497,11 @@
 <p>
 Read a 64 bit double value in big endian format from the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -475,8 +522,11 @@
 <p>
 Store an 8 bit unsigned integer value into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -496,8 +546,11 @@
 <p>
 Store a 16 bit unsigned integer value in little endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -517,8 +570,11 @@
 <p>
 Store a 16 bit unsigned integer value in big endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -538,8 +594,11 @@
 <p>
 Store a 24 bit unsigned integer value in little endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -559,8 +618,11 @@
 <p>
 Store a 24 bit unsigned integer value in big endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -580,8 +642,11 @@
 <p>
 Store a 32 bit unsigned integer value in little endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -601,8 +666,11 @@
 <p>
 Store a 32 bit unsigned integer value in big endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -622,8 +690,11 @@
 <p>
 Store a 64 bit unsigned integer value in little endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -643,8 +714,11 @@
 <p>
 Store a 64 bit unsigned integer value in big endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -665,8 +739,11 @@
 <p>
 Store a 32 bit float value in little endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -687,8 +764,11 @@
 <p>
 Store a 32 bit float value in big endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -709,8 +789,11 @@
 <p>
 Store a 64 bit double value in little endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -731,8 +814,11 @@
 <p>
 Store a 64 bit double value in big endian format into the memory buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -753,8 +839,11 @@
 <p>
 Rounds an integer value up to the next multiple of 2.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round up</td>
@@ -769,8 +858,11 @@
 <p>
 Rounds an integer value up to the next multiple of 4.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round up</td>
@@ -785,8 +877,11 @@
 <p>
 Rounds an integer value up to the next multiple of 8.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round up</td>
@@ -801,8 +896,11 @@
 <p>
 Rounds an integer value up to the next multiple of 16.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round up</td>
@@ -817,8 +915,11 @@
 <p>
 Rounds an integer value up to the next multiple of 32.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round up</td>
@@ -833,8 +934,11 @@
 <p>
 Rounds an integer value up to the next multiple of 64.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round up</td>
@@ -849,8 +953,11 @@
 <p>
 Rounds an integer value down to the next multiple of 2.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round down</td>
@@ -865,8 +972,11 @@
 <p>
 Rounds an integer value down to the next multiple of 4.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round down</td>
@@ -881,8 +991,11 @@
 <p>
 Rounds an integer value down to the next multiple of 8.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round down</td>
@@ -897,8 +1010,11 @@
 <p>
 Rounds an integer value down to the next multiple of 16.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round down</td>
@@ -913,8 +1029,11 @@
 <p>
 Rounds an integer value down to the next multiple of 32.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round down</td>
@@ -929,8 +1048,11 @@
 <p>
 Rounds an integer value down to the next multiple of 64.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
 <td>integer value to round down</td>
@@ -946,8 +1068,11 @@
 Convert 64-bit floating point value (double) from big endian byte order
 into native byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -963,8 +1088,11 @@
 Convert 64-bit floating point value (double) from little endian byte order
 into native byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -978,8 +1106,11 @@
 <p>
 Swap byte order of a 64-bit floating point value (double).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>in</code></em> :</span></p></td>
@@ -1002,8 +1133,11 @@
 Convert 64-bit floating point value (double) from native byte order into
 big endian byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -1019,8 +1153,11 @@
 Convert 64-bit floating point value (double) from native byte order into
 little endian byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -1036,8 +1173,11 @@
 Convert 32-bit floating point value (float) from big endian byte order
 into native byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -1053,8 +1193,11 @@
 Convert 32-bit floating point value (float) from little endian byte order
 into native byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -1068,8 +1211,11 @@
 <p>
 Swap byte order of a 32-bit floating point value (float).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>in</code></em> :</span></p></td>
@@ -1092,8 +1238,11 @@
 Convert 32-bit floating point value (float) from native byte order into
 big endian byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -1109,8 +1258,11 @@
 Convert 32-bit floating point value (float) from native byte order into
 little endian byte order.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>value</td>
@@ -1125,8 +1277,11 @@
 <p>
 Convert <em class="parameter"><code>value</code></em> to a gdouble.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1148,8 +1303,11 @@
 <p>
 Convert <em class="parameter"><code>value</code></em> to a guint64.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1171,8 +1329,11 @@
 <p>
 Dumps the memory block into a hex representation. Useful for debugging.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
@@ -1199,8 +1360,11 @@
 This function can potentially be very slow if val and num are both
 greater than G_MAXUINT32.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
@@ -1241,8 +1405,11 @@
 This function can potentially be very slow if val and num are both
 greater than G_MAXUINT32.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
@@ -1283,8 +1450,11 @@
 This function can potentially be very slow if val and num are both
 greater than G_MAXUINT32.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
@@ -1322,8 +1492,11 @@
 underflows and without loss of precision.  <em class="parameter"><code>num</code></em> must be non-negative and
 <em class="parameter"><code>denom</code></em> must be positive.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
@@ -1361,8 +1534,11 @@
 underflows and without loss of precision.  <em class="parameter"><code>num</code></em> must be non-negative and
 <em class="parameter"><code>denom</code></em> must be positive.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
@@ -1400,8 +1576,11 @@
 underflows and without loss of precision.  <em class="parameter"><code>num</code></em> must be non-negative and
 <em class="parameter"><code>denom</code></em> must be positive.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
@@ -1437,8 +1616,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -1468,8 +1650,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -1498,8 +1683,11 @@
 <p>
 Transforms a fraction to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src_n</code></em> :</span></p></td>
@@ -1529,8 +1717,11 @@
 Transforms a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> to a fraction and simplifies
 the result.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -1563,8 +1754,11 @@
 Multiplies the fractions <em class="parameter"><code>a_n</code></em>/<em class="parameter"><code>a_d</code></em> and <em class="parameter"><code>b_n</code></em>/<em class="parameter"><code>b_d</code></em> and stores
 the result in <em class="parameter"><code>res_n</code></em> and <em class="parameter"><code>res_d</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a_n</code></em> :</span></p></td>
@@ -1613,8 +1807,11 @@
 Adds the fractions <em class="parameter"><code>a_n</code></em>/<em class="parameter"><code>a_d</code></em> and <em class="parameter"><code>b_n</code></em>/<em class="parameter"><code>b_d</code></em> and stores
 the result in <em class="parameter"><code>res_n</code></em> and <em class="parameter"><code>res_d</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a_n</code></em> :</span></p></td>
@@ -1661,8 +1858,11 @@
 Compares the fractions <em class="parameter"><code>a_n</code></em>/<em class="parameter"><code>a_d</code></em> and <em class="parameter"><code>b_n</code></em>/<em class="parameter"><code>b_d</code></em> and returns
 -1 if a &lt; b, 0 if a = b and 1 if a &gt; b.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a_n</code></em> :</span></p></td>
@@ -1700,8 +1900,11 @@
 on a segment-done message to be the same as that of the last seek event, to
 indicate that event and the message correspond to the same segment.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>A constantly incrementing 32-bit unsigned integer, which might
@@ -1721,8 +1924,11 @@
 <p>
 The current implementation just returns (gint32)(<em class="parameter"><code>s1</code></em> - <em class="parameter"><code>s2</code></em>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>s1</code></em> :</span></p></td>
@@ -1754,8 +1960,11 @@
 Note that this function silently returns if <em class="parameter"><code>object</code></em> has no property named
 <em class="parameter"><code>name</code></em> or when <em class="parameter"><code>value</code></em> cannot be converted to the type of the property.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
@@ -1785,8 +1994,11 @@
 Note that this function is dangerous as it does not return any indication
 if the conversion worked or not.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1808,8 +2020,11 @@
 Get a timestamp as GstClockTime to be used for interval measurements.
 The timestamp should not be interpreted in any other way.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the timestamp</td>
@@ -1828,8 +2043,11 @@
 <p>
 The different search modes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-SEARCH-MODE-EXACT:CAPS"></a><span class="term"><code class="literal">GST_SEARCH_MODE_EXACT</code></span></p></td>
@@ -1870,8 +2088,11 @@
 <p>
 The complexity of this search function is O(log (num_elements)).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstValue.html b/docs/gst/html/gstreamer-GstValue.html
index 88a6fc9..3867591 100644
--- a/docs/gst/html/gstreamer-GstValue.html
+++ b/docs/gst/html/gstreamer-GstValue.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstValue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -141,6 +141,11 @@
                                                          <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>);
 const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *     <a class="link" href="gstreamer-GstValue.html#gst-value-get-caps" title="gst_value_get_caps ()">gst_value_get_caps</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-CAPS-FEATURES:CAPS" title="GST_VALUE_HOLDS_CAPS_FEATURES()">GST_VALUE_HOLDS_CAPS_FEATURES</a>       (x)
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-caps-features" title="gst_value_set_caps_features ()">gst_value_set_caps_features</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 class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);
+const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> * <a class="link" href="gstreamer-GstValue.html#gst-value-get-caps-features" title="gst_value_get_caps_features ()">gst_value_get_caps_features</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-STRUCTURE:CAPS" title="GST_VALUE_HOLDS_STRUCTURE()">GST_VALUE_HOLDS_STRUCTURE</a>           (x)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-structure" title="gst_value_set_structure ()">gst_value_set_structure</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 class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
@@ -245,8 +250,11 @@
 
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -291,8 +299,11 @@
 
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
 <td>a string with at least four characters</td>
@@ -330,8 +341,11 @@
 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
 <span class="type">guint32</span> fourcc value in a <code class="function">printf()</code>-style text message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>fourcc</code></em> :</span></p></td>
 <td>a <span class="type">guint32</span> fourcc value to output</td>
@@ -346,8 +360,11 @@
 <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-INT-RANGE:CAPS" title="GST_TYPE_INT_RANGE"><span class="type">GST_TYPE_INT_RANGE</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -362,8 +379,11 @@
 <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 integer range
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstIntRange</td>
@@ -379,8 +399,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -404,8 +427,11 @@
 <p>
 Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -425,8 +451,11 @@
 <p>
 Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -449,8 +478,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -478,8 +510,11 @@
 <p>
 Gets the step of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -500,8 +535,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -516,8 +554,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -532,8 +573,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -554,8 +598,11 @@
 <p>
 Gets the bitmask specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -577,8 +624,11 @@
 <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-INT64-RANGE:CAPS" title="GST_TYPE_INT64_RANGE"><span class="type">GST_TYPE_INT64_RANGE</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -593,8 +643,11 @@
 <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 <span class="type">gint64</span> range
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstInt64Range</td>
@@ -610,8 +663,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -635,8 +691,11 @@
 <p>
 Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -656,8 +715,11 @@
 <p>
 Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -680,8 +742,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -709,8 +774,11 @@
 <p>
 Gets the step of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -731,8 +799,11 @@
 <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-DOUBLE-RANGE:CAPS" title="GST_TYPE_DOUBLE_RANGE"><span class="type">GST_TYPE_DOUBLE_RANGE</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -747,8 +818,11 @@
 <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 floating point range with double precission
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstIntRange</td>
@@ -764,8 +838,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -789,8 +866,11 @@
 <p>
 Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -810,8 +890,11 @@
 <p>
 Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -832,8 +915,11 @@
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -852,8 +938,11 @@
 will be chosen in the end. This means that all values in the list are
 meaningful on their own.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstValueList (which is not explicitly typed)</td>
@@ -868,8 +957,11 @@
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -889,8 +981,11 @@
 used for example to express channel layouts for multichannel audio where
 each channel needs to be mapped to a position in the room.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstArrayList (which is not explicitly typed)</td>
@@ -905,8 +1000,11 @@
 <p>
 Appends <em class="parameter"><code>append_value</code></em> to the GstValueList in <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -915,7 +1013,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>append_value</code></em> :</span></p></td>
-<td>the value to append</td>
+<td>the value to append. <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>
@@ -928,8 +1027,11 @@
 <p>
 Prepends <em class="parameter"><code>prepend_value</code></em> to the GstValueList in <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -954,8 +1056,11 @@
 of type <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a> are treated as if they were lists of length 1.
 <em class="parameter"><code>dest</code></em> will be initialized to the type <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -990,8 +1095,11 @@
 contain any duplicates, or a non-list type (if <em class="parameter"><code>value1</code></em> and <em class="parameter"><code>value2</code></em>
 were equal).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1018,8 +1126,11 @@
 <p>
 Gets the number of values contained in <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1042,8 +1153,11 @@
 Gets the value that is a member of the list contained in <em class="parameter"><code>value</code></em> and
 has the index <em class="parameter"><code>index</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1070,8 +1184,11 @@
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1087,8 +1204,11 @@
 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 fraction of an integer numerator over
 an integer denominator
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstFraction (which is not explicitly typed)</td>
@@ -1106,8 +1226,11 @@
 The fraction gets reduced to the smallest numerator and denominator,
 and if necessary the sign is moved to the numerator.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1132,8 +1255,11 @@
 <p>
 Gets the numerator of the fraction specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1154,8 +1280,11 @@
 <p>
 Gets the denominator of the fraction specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1179,8 +1308,11 @@
 Multiplies the two <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items containing a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS" title="GST_TYPE_FRACTION"><span class="type">GST_TYPE_FRACTION</span></a> and sets
 <em class="parameter"><code>product</code></em> to the product of the two fractions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>product</code></em> :</span></p></td>
@@ -1213,8 +1345,11 @@
 <p>
 Subtracts the <em class="parameter"><code>subtrahend</code></em> from the <em class="parameter"><code>minuend</code></em> and sets <em class="parameter"><code>dest</code></em> to the result.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1246,8 +1381,11 @@
 <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-RANGE:CAPS" title="GST_TYPE_FRACTION_RANGE"><span class="type">GST_TYPE_FRACTION_RANGE</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1262,8 +1400,11 @@
 <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 GstFraction range
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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 GstFractionRange</td>
@@ -1279,8 +1420,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1304,8 +1448,11 @@
 <p>
 Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1325,8 +1472,11 @@
 <p>
 Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1351,8 +1501,11 @@
 Sets <em class="parameter"><code>value</code></em> to the range specified by <em class="parameter"><code>numerator_start</code></em>/<em class="parameter"><code>denominator_start</code></em>
 and <em class="parameter"><code>numerator_end</code></em>/<em class="parameter"><code>denominator_end</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1385,8 +1538,11 @@
 <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-GstDateTime.html#GST-TYPE-DATE-TIME:CAPS" title="GST_TYPE_DATE_TIME"><span class="type">GST_TYPE_DATE_TIME</span></a> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1401,8 +1557,11 @@
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1418,8 +1577,11 @@
 Sets the contents of <em class="parameter"><code>value</code></em> to <em class="parameter"><code>caps</code></em>. A reference to the
 provided <em class="parameter"><code>caps</code></em> will be taken by the <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1442,8 +1604,11 @@
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> will not be modified, therefore the caller must take one
 before getting rid of the <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1459,14 +1624,86 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-VALUE-HOLDS-CAPS-FEATURES:CAPS"></a><h3>GST_VALUE_HOLDS_CAPS_FEATURES()</h3>
+<pre class="programlisting">#define GST_VALUE_HOLDS_CAPS_FEATURES(x)        (G_VALUE_HOLDS((x), GST_TYPE_CAPS_FEATURES))
+</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_FEATURES</span> value.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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-set-caps-features"></a><h3>gst_value_set_caps_features ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_set_caps_features         (<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 class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> *features</code></em>);</pre>
+<p>
+Sets the contents of <em class="parameter"><code>value</code></em> to <em class="parameter"><code>features</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to GST_TYPE_CAPS_FEATURES</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>the features to set the value to</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-get-caps-features"></a><h3>gst_value_get_caps_features ()</h3>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstCapsFeatures.html#GstCapsFeatures" title="GstCapsFeatures"><span class="returnvalue">GstCapsFeatures</span></a> * gst_value_get_caps_features     (<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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to GST_TYPE_CAPS_FEATURES</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-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>
 <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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1481,8 +1718,11 @@
 <p>
 Sets the contents of <em class="parameter"><code>value</code></em> to <em class="parameter"><code>structure</code></em>.  The actual
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1502,8 +1742,11 @@
 <p>
 Gets the contents of <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1525,8 +1768,11 @@
 <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_BUFFER</span> value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1543,8 +1789,11 @@
 the buffer, 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
@@ -1566,8 +1815,11 @@
 <p>
 Sets <em class="parameter"><code>b</code></em> as the value of <em class="parameter"><code>v</code></em>.  Caller retains reference to buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
@@ -1589,8 +1841,11 @@
 <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 buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
@@ -1612,8 +1867,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -1630,8 +1888,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
@@ -1653,8 +1914,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
@@ -1676,8 +1940,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
@@ -1739,8 +2006,11 @@
 <p>
 Used together with <a class="link" href="gstreamer-GstValue.html#gst-value-compare" title="gst_value_compare ()"><code class="function">gst_value_compare()</code></a> to compare <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -1768,8 +2038,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -1792,8 +2065,11 @@
 <p>
 Used by <a class="link" href="gstreamer-GstValue.html#gst-value-deserialize" title="gst_value_deserialize ()"><code class="function">gst_value_deserialize()</code></a> to parse a non-binary form into the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1825,8 +2101,11 @@
 <p>
 VTable for the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="parameter"><code>type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <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="GstValueTable.type"></a>type</code></em>;</span></p></td>
@@ -1861,8 +2140,11 @@
 (which means: multiple possible values, such as data lists or data
 ranges) value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1883,8 +2165,11 @@
 Registers functions to perform calculations on <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items of a given
 type. Each type can only be added once.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
 <td>structure containing functions to register</td>
@@ -1900,8 +2185,11 @@
 Initialises the target value to be of the same type as source and then copies
 the contents from source to target.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1926,8 +2214,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -1950,8 +2241,11 @@
 Tries to deserialize a string into the type specified by the given GValue.
 If the operation succeeds, TRUE is returned, FALSE otherwise.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -1983,8 +2277,11 @@
 If <em class="parameter"><code>value1</code></em> is less than <em class="parameter"><code>value2</code></em>, GST_VALUE_LESS_THAN is returned.
 If the values are equal, GST_VALUE_EQUAL is returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -2009,8 +2306,11 @@
 <p>
 Determines if <em class="parameter"><code>value1</code></em> and <em class="parameter"><code>value2</code></em> can be compared.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -2036,8 +2336,11 @@
 <p>
 Creates a GValue corresponding to the union of <em class="parameter"><code>value1</code></em> and <em class="parameter"><code>value2</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -2073,8 +2376,11 @@
 integer range.  If there is the possibility that two values can
 be unioned, this function returns TRUE.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -2102,8 +2408,11 @@
 Subtracts <em class="parameter"><code>subtrahend</code></em> from <em class="parameter"><code>minuend</code></em> and stores the result in <em class="parameter"><code>dest</code></em>.
 Note that this means subtraction as in sets, not as in mathematics.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -2136,8 +2445,11 @@
 <p>
 Checks if it's possible to subtract <em class="parameter"><code>subtrahend</code></em> from <em class="parameter"><code>minuend</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>minuend</code></em> :</span></p></td>
@@ -2166,8 +2478,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -2199,10 +2514,13 @@
 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
-<code class="function">gst_value_register_intersect_func()</code>) 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -2230,8 +2548,11 @@
 <p>
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
@@ -2254,8 +2575,11 @@
 <p>
 Appends <em class="parameter"><code>append_value</code></em> to the GstValueArray in <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -2276,8 +2600,11 @@
 <p>
 Gets the number of values contained in <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -2300,8 +2627,11 @@
 Gets the value that is a member of the array contained in <em class="parameter"><code>value</code></em> and
 has the index <em class="parameter"><code>index</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -2328,8 +2658,11 @@
 <p>
 Prepends <em class="parameter"><code>prepend_value</code></em> to the GstValueArray in <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
@@ -2354,8 +2687,11 @@
 first item is fixated and returned.
 If <em class="parameter"><code>src</code></em> is already fixed, this function returns FALSE.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstVersion.html b/docs/gst/html/gstreamer-GstVersion.html
index 4ae2dcc..ba3bf4c 100644
--- a/docs/gst/html/gstreamer-GstVersion.html
+++ b/docs/gst/html/gstreamer-GstVersion.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVersion</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -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 (0)
+<pre class="programlisting">#define GST_VERSION_MINOR (1)
 </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 (8)
+<pre class="programlisting">#define GST_VERSION_MICRO (2)
 </pre>
 <p>
 The micro version of GStreamer at compile time:
@@ -112,8 +112,11 @@
 Check whether a GStreamer version equal to or greater than
 major.minor.micro is present.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-gstconfig.html b/docs/gst/html/gstreamer-gstconfig.html
index fda86e4..7a7ccdd 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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstControlBinding.html" title="GstControlBinding">
+<link rel="next" href="gstreamer-GstContext.html" title="GstContext">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <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="GstControlBinding.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-GstContext.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>
diff --git a/docs/gst/html/gstreamer-hierarchy.html b/docs/gst/html/gstreamer-hierarchy.html
index bcd681f..e7c93e3 100644
--- a/docs/gst/html/gstreamer-hierarchy.html
+++ b/docs/gst/html/gstreamer-hierarchy.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,8 +20,8 @@
 <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">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="gstreamer-hierarchy"></a>Object Hierarchy</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="gstreamer-hierarchy"></a>Object Hierarchy</h1></div></div></div>
 <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>
diff --git a/docs/gst/html/gstreamer-support.html b/docs/gst/html/gstreamer-support.html
index 2994b72..ed925ac 100644
--- a/docs/gst/html/gstreamer-support.html
+++ b/docs/gst/html/gstreamer-support.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,9 +20,9 @@
 <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="titlepage"><div><div><h1 class="title">
+<a name="gstreamer-support"></a>GStreamer Core Support</h1></div></div></div>
+<div class="toc"><dl class="toc"><dt>
 <span class="refentrytitle"><a href="gstreamer-GstInfo.html">GstInfo</a></span><span class="refpurpose"> — Debugging and logging facilities</span>
 </dt></dl></div>
 <p>
diff --git a/docs/gst/html/gstreamer.html b/docs/gst/html/gstreamer.html
index e25f192..7278eb7 100644
--- a/docs/gst/html/gstreamer.html
+++ b/docs/gst/html/gstreamer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Overview</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,9 +20,9 @@
 <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">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="gstreamer"></a>GStreamer Overview</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="gstreamer"></a>GStreamer Overview</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-building.html">Building GStreamer and GStreamer Applications</a></span><span class="refpurpose"> — 
 How to build the GStreamer framework and applications using it.
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index f1e14f7..ec40ed2 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer 1.0 Core Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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)">
@@ -15,14 +15,14 @@
 <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 1.0 (1.0.8)
+      for GStreamer Core 1.0 (1.1.2)
       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>
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="chapter"><a href="gstreamer.html">GStreamer Overview</a></span></dt>
 <dd><dl>
 <dt>
@@ -67,6 +67,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-GstCapsFeatures.html">GstCapsFeatures</a></span><span class="refpurpose"> — A set of features in caps</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gstreamer-GstSample.html">GstSample</a></span><span class="refpurpose"> — A media sample</span>
 </dt>
 <dt>
@@ -79,6 +82,9 @@
 <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="gstreamer-GstContext.html">GstContext</a></span><span class="refpurpose"> — Lightweight objects to represent element contexts</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="GstControlBinding.html">GstControlBinding</a></span><span class="refpurpose"> — attachment for control source sources</span>
 </dt>
 <dt>
@@ -162,7 +168,7 @@
                     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>
+<span class="refentrytitle"><a href="GstRegistry.html">GstRegistry</a></span><span class="refpurpose">Abstract base class for management of <span class="type">GstPlugin</span> objects</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-GstSegment.html">GstSegment</a></span><span class="refpurpose"> — Structure describing the configured region of interest
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index ce3c4ea..38f7011 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -79,6 +79,7 @@
 <ANCHOR id="GstBinFlags" href="gstreamer-1.0/GstBin.html#GstBinFlags">
 <ANCHOR id="GST-BIN-FLAG-NO-RESYNC:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-FLAG-NO-RESYNC:CAPS">
 <ANCHOR id="GST-BIN-FLAG-LAST:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-FLAG-LAST:CAPS">
+<ANCHOR id="GST-BIN-IS-NO-RESYNC:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-IS-NO-RESYNC: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">
@@ -154,6 +155,7 @@
 <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-extract-dup" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-extract-dup">
 <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">
@@ -163,6 +165,7 @@
 <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-DEEP:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-DEEP: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">
@@ -313,11 +316,15 @@
 <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-append-structure-full" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-append-structure-full">
 <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-merge-structure-full" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-merge-structure-full">
 <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-get-features" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-get-features">
+<ANCHOR id="gst-caps-set-features" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-set-features">
 <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">
@@ -330,6 +337,7 @@
 <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-is-subset-structure-full" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-subset-structure-full">
 <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">
@@ -346,6 +354,34 @@
 <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-GstCapsFeatures" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html">
+<ANCHOR id="gstreamer-GstCapsFeatures.synopsis" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gstreamer-GstCapsFeatures.synopsis">
+<ANCHOR id="gstreamer-GstCapsFeatures.description" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gstreamer-GstCapsFeatures.description">
+<ANCHOR id="gstreamer-GstCapsFeatures.details" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gstreamer-GstCapsFeatures.details">
+<ANCHOR id="GstCapsFeatures" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#GstCapsFeatures">
+<ANCHOR id="gst-caps-features-new" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-new">
+<ANCHOR id="gst-caps-features-new-empty" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-new-empty">
+<ANCHOR id="gst-caps-features-new-any" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-new-any">
+<ANCHOR id="gst-caps-features-new-id" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-new-id">
+<ANCHOR id="gst-caps-features-new-id-valist" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-new-id-valist">
+<ANCHOR id="gst-caps-features-new-valist" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-new-valist">
+<ANCHOR id="gst-caps-features-copy" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-copy">
+<ANCHOR id="gst-caps-features-free" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-free">
+<ANCHOR id="gst-caps-features-from-string" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-from-string">
+<ANCHOR id="gst-caps-features-to-string" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-to-string">
+<ANCHOR id="gst-caps-features-set-parent-refcount" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-set-parent-refcount">
+<ANCHOR id="gst-caps-features-is-equal" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-is-equal">
+<ANCHOR id="gst-caps-features-is-any" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-is-any">
+<ANCHOR id="gst-caps-features-contains" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-contains">
+<ANCHOR id="gst-caps-features-contains-id" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-contains-id">
+<ANCHOR id="gst-caps-features-get-size" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-get-size">
+<ANCHOR id="gst-caps-features-get-nth" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-get-nth">
+<ANCHOR id="gst-caps-features-get-nth-id" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-get-nth-id">
+<ANCHOR id="gst-caps-features-add" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-add">
+<ANCHOR id="gst-caps-features-add-id" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-add-id">
+<ANCHOR id="gst-caps-features-remove" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-remove">
+<ANCHOR id="gst-caps-features-remove-id" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gst-caps-features-remove-id">
+<ANCHOR id="gstreamer-GstCapsFeatures.see-also" href="gstreamer-1.0/gstreamer-GstCapsFeatures.html#gstreamer-GstCapsFeatures.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">
@@ -479,6 +515,21 @@
 <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="gstreamer-GstContext" href="gstreamer-1.0/gstreamer-GstContext.html">
+<ANCHOR id="gstreamer-GstContext.synopsis" href="gstreamer-1.0/gstreamer-GstContext.html#gstreamer-GstContext.synopsis">
+<ANCHOR id="gstreamer-GstContext.description" href="gstreamer-1.0/gstreamer-GstContext.html#gstreamer-GstContext.description">
+<ANCHOR id="gstreamer-GstContext.details" href="gstreamer-1.0/gstreamer-GstContext.html#gstreamer-GstContext.details">
+<ANCHOR id="GstContext" href="gstreamer-1.0/gstreamer-GstContext.html#GstContext">
+<ANCHOR id="gst-context-new" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-new">
+<ANCHOR id="gst-context-ref" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-ref">
+<ANCHOR id="gst-context-unref" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-unref">
+<ANCHOR id="gst-context-copy" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-copy">
+<ANCHOR id="gst-context-get-structure" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-get-structure">
+<ANCHOR id="gst-context-writable-structure" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-writable-structure">
+<ANCHOR id="gst-context-make-writable" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-make-writable">
+<ANCHOR id="gst-context-is-writable" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-is-writable">
+<ANCHOR id="gst-context-replace" href="gstreamer-1.0/gstreamer-GstContext.html#gst-context-replace">
+<ANCHOR id="gstreamer-GstContext.see-also" href="gstreamer-1.0/gstreamer-GstContext.html#gstreamer-GstContext.see-also">
 <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">
@@ -641,6 +692,8 @@
 <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-set-context" href="gstreamer-1.0/GstElement.html#gst-element-set-context">
+<ANCHOR id="gst-element-get-context" href="gstreamer-1.0/GstElement.html#gst-element-get-context">
 <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">
@@ -814,6 +867,7 @@
 <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-CONTEXT:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CONTEXT: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">
@@ -862,6 +916,8 @@
 <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-parse-stream-start" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-stream-start">
+<ANCHOR id="gst-event-set-stream-flags" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-set-stream-flags">
+<ANCHOR id="gst-event-parse-stream-flags" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-stream-flags">
 <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">
@@ -907,6 +963,8 @@
 <ANCHOR id="gst-event-parse-toc-select" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-toc-select">
 <ANCHOR id="gst-event-new-segment-done" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-segment-done">
 <ANCHOR id="gst-event-parse-segment-done" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-segment-done">
+<ANCHOR id="gst-event-new-context" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-context">
+<ANCHOR id="gst-event-parse-context" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-context">
 <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">
@@ -1000,6 +1058,8 @@
 <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-PHYSICALLY-CONTIGUOUS:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-PHYSICALLY-CONTIGUOUS:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-NOT-MAPPABLE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-NOT-MAPPABLE: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">
@@ -1008,6 +1068,8 @@
 <ANCHOR id="GST-MEMORY-IS-NO-SHARE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE: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="GST-MEMORY-IS-PHYSICALLY-CONTIGUOUS:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-PHYSICALLY-CONTIGUOUS:CAPS">
+<ANCHOR id="GST-MEMORY-IS-NOT-MAPPABLE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-NOT-MAPPABLE: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">
@@ -1022,6 +1084,7 @@
 <ANCHOR id="GstMemoryShareFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryShareFunction">
 <ANCHOR id="GstMemoryIsSpanFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryIsSpanFunction">
 <ANCHOR id="gst-memory-init" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-init">
+<ANCHOR id="gst-memory-is-type" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-is-type">
 <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-get-sizes" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-get-sizes">
@@ -1029,6 +1092,7 @@
 <ANCHOR id="gst-memory-lock" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-lock">
 <ANCHOR id="gst-memory-unlock" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-unlock">
 <ANCHOR id="gst-memory-is-writable" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-is-writable">
+<ANCHOR id="gst-memory-make-writable" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-make-writable">
 <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">
@@ -1072,6 +1136,8 @@
 <ANCHOR id="GST-MESSAGE-TOC:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TOC:CAPS">
 <ANCHOR id="GST-MESSAGE-RESET-TIME:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-RESET-TIME:CAPS">
 <ANCHOR id="GST-MESSAGE-STREAM-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STREAM-START:CAPS">
+<ANCHOR id="GST-MESSAGE-NEED-CONTEXT:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-NEED-CONTEXT:CAPS">
+<ANCHOR id="GST-MESSAGE-HAVE-CONTEXT:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-HAVE-CONTEXT: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">
@@ -1167,6 +1233,12 @@
 <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="gst-message-new-need-context" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-need-context">
+<ANCHOR id="gst-message-add-context-type" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-add-context-type">
+<ANCHOR id="gst-message-get-n-context-types" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-get-n-context-types">
+<ANCHOR id="gst-message-parse-nth-context-type" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-nth-context-type">
+<ANCHOR id="gst-message-new-have-context" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-have-context">
+<ANCHOR id="gst-message-parse-have-context" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-have-context">
 <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">
@@ -1490,6 +1562,7 @@
 <ANCHOR id="gst-pad-create-stream-id" href="gstreamer-1.0/GstPad.html#gst-pad-create-stream-id">
 <ANCHOR id="gst-pad-create-stream-id-printf" href="gstreamer-1.0/GstPad.html#gst-pad-create-stream-id-printf">
 <ANCHOR id="gst-pad-create-stream-id-printf-valist" href="gstreamer-1.0/GstPad.html#gst-pad-create-stream-id-printf-valist">
+<ANCHOR id="gst-pad-get-stream-id" href="gstreamer-1.0/GstPad.html#gst-pad-get-stream-id">
 <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">
@@ -1670,6 +1743,7 @@
 <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-get-plugin" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-plugin">
+<ANCHOR id="gst-plugin-feature-get-plugin-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-plugin-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">
@@ -1751,6 +1825,7 @@
 <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-CONTEXT:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-CONTEXT: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">
@@ -1823,10 +1898,12 @@
 <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-remove-nth-allocation-pool" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-remove-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-remove-nth-allocation-param" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-remove-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">
@@ -1835,6 +1912,7 @@
 <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-SCHEDULING-FLAG-BANDWIDTH-LIMITED:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-BANDWIDTH-LIMITED: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">
@@ -1844,6 +1922,12 @@
 <ANCHOR id="gst-query-has-scheduling-mode" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-has-scheduling-mode">
 <ANCHOR id="gst-query-has-scheduling-mode-with-flags" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-has-scheduling-mode-with-flags">
 <ANCHOR id="gst-query-new-drain" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-drain">
+<ANCHOR id="gst-query-new-context" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-context">
+<ANCHOR id="gst-query-set-context" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-context">
+<ANCHOR id="gst-query-parse-context" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-context">
+<ANCHOR id="gst-query-add-context-type" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-add-context-type">
+<ANCHOR id="gst-query-get-n-context-types" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-context-types">
+<ANCHOR id="gst-query-parse-nth-context-type" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-context-type">
 <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">
@@ -1907,6 +1991,7 @@
 <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-new-from-string" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-new-from-string">
 <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">
@@ -2473,6 +2558,9 @@
 <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-CAPS-FEATURES:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS-FEATURES:CAPS">
+<ANCHOR id="gst-value-set-caps-features" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-caps-features">
+<ANCHOR id="gst-value-get-caps-features" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-caps-features">
 <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">
@@ -2579,6 +2667,7 @@
 <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-set-threshold-from-string" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-set-threshold-from-string">
 <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">
@@ -2649,8 +2738,8 @@
 <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-in" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-in">
 <ANCHOR id="annotation-glossterm-scope call" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-scope call">
 <ANCHOR id="annotation-glossterm-transfer full" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-transfer full">
 <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 79587dc..a25908e 100644
--- a/docs/gst/html/libgstreamer.html
+++ b/docs/gst/html/libgstreamer.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,9 +20,9 @@
 <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">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="libgstreamer"></a>GStreamer Core Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="libgstreamer"></a>GStreamer Core Library</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gstreamer-Gst.html">Gst</a></span><span class="refpurpose"> — Media library supporting arbitrary formats and filter
                     graphs.</span>
@@ -52,6 +52,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-GstCapsFeatures.html">GstCapsFeatures</a></span><span class="refpurpose"> — A set of features in caps</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gstreamer-GstSample.html">GstSample</a></span><span class="refpurpose"> — A media sample</span>
 </dt>
 <dt>
@@ -64,6 +67,9 @@
 <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="gstreamer-GstContext.html">GstContext</a></span><span class="refpurpose"> — Lightweight objects to represent element contexts</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="GstControlBinding.html">GstControlBinding</a></span><span class="refpurpose"> — attachment for control source sources</span>
 </dt>
 <dt>
@@ -147,7 +153,7 @@
                     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>
+<span class="refentrytitle"><a href="GstRegistry.html">GstRegistry</a></span><span class="refpurpose">Abstract base class for management of <span class="type">GstPlugin</span> objects</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-GstSegment.html">GstSegment</a></span><span class="refpurpose"> — Structure describing the configured region of interest
diff --git a/docs/gst/running.xml b/docs/gst/running.xml
index b6bf59a..5564a1b 100644
--- a/docs/gst/running.xml
+++ b/docs/gst/running.xml
@@ -31,7 +31,8 @@
 </para>
 
 <formalpara id="GST_PLUGIN_SYSTEM_PATH">
-  <title><envar>GST_PLUGIN_SYSTEM_PATH</envar></title>
+  <title><envar>GST_PLUGIN_SYSTEM_PATH</envar>,
+         <envar>GST_PLUGIN_SYSTEM_PATH_1_0</envar></title>
 
   <para>
 
@@ -41,10 +42,13 @@
 <itemizedlist>
   <listitem>
     <para>
-plug-ins in the user's home directory.  These are stored in a directory called
+plug-ins in the user's home directory, or rather the user's "data home"
+directory according to the xdg base dir specification. Usually this will be
+a directory called
 <filename>plugins</filename> inside the
-<filename>.gstreamer-&GST_API_VERSION;</filename> directory in the user's
-home directory.
+<filename>.local/share/.gstreamer-&GST_API_VERSION;</filename> directory in
+the user's home directory by default, though this search path may change if
+the XDG_DATA_HOME environment variable is set.
     </para>
   </listitem>
   <listitem>
@@ -64,6 +68,12 @@
 The paths are scanned in the given order.  This allows a user to override
 system-installed plug-ins with his own versions.
    </para>
+  <para>
+The GST_PLUGIN_SYSTEM_PATH_1_0 variant is useful if both the old GStreamer 0.10
+version and the new GStreamer 1.0 version need to be pointed to new plugin
+paths. The latter will use the _1_0 variant over the non-versioned one if
+it is set.
+  </para>
 
     <para>
 Setting this variable to an empty string will cause GStreamer not to scan any
@@ -74,14 +84,19 @@
 </formalpara>
 
 <formalpara id="GST_PLUGIN_PATH">
-  <title><envar>GST_PLUGIN_PATH</envar></title>
+  <title><envar>GST_PLUGIN_PATH</envar>, <envar>GST_PLUGIN_PATH_1_0</envar></title>
 
   <para>
 This environment variable can be set to a colon-separated list of paths.
 GStreamer will scan these paths for GStreamer plug-ins.  These plug-ins will
 be loaded in addition to, and before, the plug-ins in the system paths.
   </para>
-
+  <para>
+The GST_PLUGIN_PATH_1_0 variant is useful if both the old GStreamer 0.10
+version and the new GStreamer 1.0 version need to be pointed to new plugin
+paths. The latter will use the _1_0 variant over the non-versioned one if
+it is set.
+  </para>
 </formalpara>
 
 <formalpara id="GST_DEBUG">
@@ -209,6 +224,11 @@
 non-fatal errors or warnings that might be related to the problem at hand.
   </para>
 
+  <para>
+Since GStreamer 1.2 it is also possible to specify debug levels by name,
+e.g. GST_DEBUG=*:WARNING,*audio*:LOG
+  </para>
+
 </formalpara>
 
 <formalpara id="GST_DEBUG_NO_COLOR">
@@ -248,6 +268,30 @@
 #GST_DEBUG_BIN_TO_DOT_FILE or #GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS calls
 and have the dot files in that location.
   </para>
+  <para>
+This will only work if the application in question makes these calls in
+strategic places (like when the pipeline state changes or an error occurs).
+gst-launch-&GST_API_VERSION; is one such application.
+  </para>
+  <para>
+These .dot files can then be turned into images using the 'dot' utility
+from the graphviz set of tools, like this:
+  <command>dot foo.dot -Tsvg -o foo.svg</command> or
+  <command>dot foo.dot -Tpng -o foo.png</command> or
+  <command>dot foo.dot -Tjpg -o foo.jpg</command>.
+  </para>
+
+</formalpara>
+
+<formalpara id="GST_REGISTRY">
+  <title><envar>GST_REGISTRY</envar>, <envar>GST_REGISTRY_1_0</envar></title>
+
+  <para>
+Set this environment variable to make GStreamer use a different file for the
+plugin cache / registry than the default one. This is useful when operating
+in a separate environment which should not affect the default cache in the
+user's home directory.
+  </para>
 
 </formalpara>
 
@@ -314,6 +358,17 @@
   </para>
 </formalpara>
 
+<formalpara id="GST_DEBUG_FILE">
+  <title><envar>GST_DEBUG_FILE</envar></title>
+
+  <para>
+  Set this variable to a file path to redirect all GStreamer debug
+  messages to this file. If left unset, debug messages with be output
+  unto the standard error.
+  </para>
+
+</formalpara>
+
 <formalpara id="ORC_CODE">
   <title><envar>ORC_CODE</envar></title>
 
diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am
index 4c621b5..a8837f4 100644
--- a/docs/libs/Makefile.am
+++ b/docs/libs/Makefile.am
@@ -62,13 +62,14 @@
 	$(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 \
+	$(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
 
 GTKDOC_EXTRA_ENVIRONMENT= \
-    GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
+    GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
 
 # If you need to override some of the declarations, place them in this file
 # and uncomment this line.
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index db18f79..ef106d4 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +33,51 @@
 ###########################################################################
 # thomas: except of course that we did
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,9 +97,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gtk-doc.mak \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
+	$(top_srcdir)/common/gtk-doc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/libs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -80,7 +107,6 @@
 	$(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 \
@@ -104,24 +130,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -129,6 +163,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -230,15 +265,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -248,11 +279,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -260,6 +289,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -322,6 +352,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -477,12 +508,13 @@
 	$(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 \
+	$(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
 GTKDOC_EXTRA_ENVIRONMENT = \
-    GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
+    GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
 
 
 # If you need to override some of the declarations, place them in this file
@@ -570,11 +602,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -713,18 +745,18 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local 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-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic \
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	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-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
 	maintainer-clean-local mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-	uninstall-local
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-local
 
 html: html-build.stamp
 
@@ -808,9 +840,9 @@
 @ENABLE_GTK_DOC_TRUE@		--ignore-headers="$(IGNORE_HFILES)"
 @ENABLE_GTK_DOC_TRUE@	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then	\
 @ENABLE_GTK_DOC_TRUE@	    echo "  DOC   Introspecting gobjects"; \
-@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`		\
-@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_PATH=						\
-@ENABLE_GTK_DOC_TRUE@	    GST_REGISTRY=doc-registry.xml				\
+@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
+@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_PATH_1_0=						\
+@ENABLE_GTK_DOC_TRUE@	    GST_REGISTRY_1_0=doc-registry.xml				\
 @ENABLE_GTK_DOC_TRUE@	    $(GTKDOC_EXTRA_ENVIRONMENT)					\
 @ENABLE_GTK_DOC_TRUE@	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"				\
 @ENABLE_GTK_DOC_TRUE@	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
@@ -857,10 +889,7 @@
 @ENABLE_GTK_DOC_TRUE@	if test "$(?)" = "0"; then \
 @ENABLE_GTK_DOC_TRUE@	  mkhtml_options=--path="$(abs_srcdir)"; \
 @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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f version.entities
 @ENABLE_GTK_DOC_TRUE@	@test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
@@ -914,9 +943,9 @@
 	    echo '-- Installing '$$i ; \
 	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	  done; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(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 ac6f0b4..92d25fb 100644
--- a/docs/libs/gstreamer-libs-docs.sgml
+++ b/docs/libs/gstreamer-libs-docs.sgml
@@ -45,6 +45,8 @@
       <xi:include href="xml/gstbytewriter.xml" />
       <xi:include href="xml/gstcollectpads.xml" />
       <xi:include href="xml/gsttypefindhelper.xml" />
+      <xi:include href="xml/gstdataqueue.xml" />
+      <xi:include href="xml/gstqueuearray.xml" />
     </chapter>
 
     <chapter id="gstreamer-control">
@@ -84,6 +86,7 @@
       <xi:include href="xml/gstcheck.xml" />
       <xi:include href="xml/gstcheckbufferstraw.xml" />
       <xi:include href="xml/gstcheckconsistencychecker.xml" />
+      <xi:include href="xml/gsttestclock.xml" />
     </chapter>
   </part>
 
diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt
index c9ea916..cdcd21c 100644
--- a/docs/libs/gstreamer-libs-sections.txt
+++ b/docs/libs/gstreamer-libs-sections.txt
@@ -749,6 +749,53 @@
 <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_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>
+
+<SECTION>
+<FILE>gstqueuearray</FILE>
+<TITLE>GstQueueArray</TITLE>
+<INCLUDE>gst/base/gstqueuearray.h</INCLUDE>
+GstQueueArray
+gst_queue_array_new
+gst_queue_array_free
+gst_queue_array_get_length
+gst_queue_array_pop_head
+gst_queue_array_peek_head
+gst_queue_array_push_tail
+gst_queue_array_is_empty
+gst_queue_array_drop_element
+gst_queue_array_find
+</SECTION>
+
 # net
 
 <SECTION>
@@ -825,6 +872,11 @@
 fail_unless_equals_string
 fail_unless_equals_uint64
 fail_unless_equals_int64
+fail_unless_equals_int_hex
+fail_unless_equals_int64_hex
+fail_unless_equals_uint64_hex
+fail_unless_equals_pointer
+
 fail_unless_message_error
 
 assert_equals_int
@@ -832,6 +884,10 @@
 assert_equals_string
 assert_equals_uint64
 assert_equals_int64
+assert_equals_int_hex
+assert_equals_int64_hex
+assert_equals_uint64_hex
+assert_equals_pointer
 assert_message_error
 
 gst_check_init
@@ -851,6 +907,8 @@
 gst_check_element_push_buffer_list
 gst_check_element_push_buffer
 gst_check_run_suite
+gst_check_setup_events
+gst_check_setup_events_with_stream_id
 
 <SUBSECTION Private>
 MAIN_INIT
@@ -990,3 +1048,32 @@
 gst_consistency_checker_free
 </SECTION>
 
+<SECTION>
+<FILE>gsttestclock</FILE>
+<TITLE>GstTestClock</TITLE>
+<INCLUDE>gst/check/gsttestclock.h</INCLUDE>
+GstTestClock
+GstTestClockClass
+gst_test_clock_new
+gst_test_clock_new_with_start_time
+gst_test_clock_set_time
+gst_test_clock_advance_time
+gst_test_clock_peek_id_count
+gst_test_clock_has_id
+gst_test_clock_peek_next_pending_id
+gst_test_clock_wait_for_next_pending_id
+gst_test_clock_wait_for_pending_id_count
+gst_test_clock_process_next_clock_id
+gst_test_clock_get_next_entry_time
+<SUBSECTION Standard>
+GST_TEST_CLOCK
+GST_IS_TEST_CLOCK
+GST_TYPE_TEST_CLOCK
+GST_TEST_CLOCK_CLASS
+GST_IS_TEST_CLOCK_CLASS
+GST_TEST_CLOCK_GET_CLASS
+GST_TEST_CLOCK_CAST
+<SUBSECTION Private>
+GstTestClockPrivate
+gst_test_clock_get_type
+</SECTION>
diff --git a/docs/libs/gstreamer-libs.types b/docs/libs/gstreamer-libs.types
index 98f9ad8..8681c4c 100644
--- a/docs/libs/gstreamer-libs.types
+++ b/docs/libs/gstreamer-libs.types
@@ -38,3 +38,9 @@
 
 gst_net_client_clock_get_type
 gst_net_time_provider_get_type
+
+% check
+
+#include <gst/check/gsttestclock.h>
+
+gst_test_clock_get_type
diff --git a/docs/libs/html/GstAdapter.html b/docs/libs/html/GstAdapter.html
index 35e594f..08a3a36 100644
--- a/docs/libs/html/GstAdapter.html
+++ b/docs/libs/html/GstAdapter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstAdapter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -68,12 +68,12 @@
                                                          <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>,
+<span class="returnvalue">gssize</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>,
+<span class="returnvalue">gssize</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>,
@@ -193,12 +193,14 @@
 <p>
 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 <code class="function">gst_adapter_prev_timestamp()</code>. This function can
-optionally return the amount of bytes between the start of the buffer that
+can be queried with <a class="link" href="GstAdapter.html#gst-adapter-prev-pts" title="gst_adapter_prev_pts ()"><code class="function">gst_adapter_prev_pts()</code></a>. This function can
+optionally return the number 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
 you to calculate the timestamp of the current adapter position by using the
-last seen timestamp and the amount of bytes since.
+last seen timestamp and the amount of bytes since.  Additionally, the
+<code class="function">gst_adapter_prev_pts_at_offset()</code> can be used to determine the last
+seen timestamp at a particular offset in the adapter.
 </p>
 <p>
 A last thing to note is that while GstAdapter is pretty optimized,
@@ -241,8 +243,11 @@
 <p>
 Creates a new <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a>. Free with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -257,8 +262,11 @@
 <p>
 Removes all buffers from <em class="parameter"><code>adapter</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -275,8 +283,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -313,8 +324,11 @@
 <p>
 Returns <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>size</code></em> bytes are not available.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -340,8 +354,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -365,8 +382,11 @@
 The user should check that the adapter has (<em class="parameter"><code>offset</code></em> + <em class="parameter"><code>size</code></em>) bytes
 available before calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -401,8 +421,11 @@
 <p>
 See also: <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()"><code class="function">gst_adapter_map()</code></a>, <a class="link" href="GstAdapter.html#gst-adapter-unmap" title="gst_adapter_unmap ()"><code class="function">gst_adapter_unmap()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -425,8 +448,11 @@
 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
 returning NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -450,8 +476,11 @@
 requiring any expensive operations (like copying the data into a
 temporary buffer).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -481,8 +510,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -526,8 +558,11 @@
 <p>
 Free-function: gst_buffer_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -563,8 +598,11 @@
 Caller owns returned list and contained buffers. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -601,8 +639,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -637,8 +678,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -660,7 +704,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-masked-scan-uint32"></a><h3>gst_adapter_masked_scan_uint32 ()</h3>
-<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>,
+<pre class="programlisting"><span class="returnvalue">gssize</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>,
@@ -682,8 +726,11 @@
 This function calls <a class="link" href="GstAdapter.html#gst-adapter-masked-scan-uint32-peek" title="gst_adapter_masked_scan_uint32_peek ()"><code class="function">gst_adapter_masked_scan_uint32_peek()</code></a> passing NULL
 for value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
@@ -737,7 +784,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-masked-scan-uint32-peek"></a><h3>gst_adapter_masked_scan_uint32_peek ()</h3>
-<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>,
+<pre class="programlisting"><span class="returnvalue">gssize</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>,
@@ -757,8 +804,11 @@
 It is an error to call this function without making sure that there is
 enough data (offset+size bytes) in the adapter.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
diff --git a/docs/libs/html/GstBaseSink.html b/docs/libs/html/GstBaseSink.html
index d435cee..becbf55 100644
--- a/docs/libs/html/GstBaseSink.html
+++ b/docs/libs/html/GstBaseSink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseSink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -111,6 +111,7 @@
   "<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-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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--max-bitrate" title='The "max-bitrate" property'>max-bitrate</a>"              <span class="type">guint64</span>               : Read / Write
   "<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>"             <span class="type">guint64</span>               : Read / Write
@@ -350,8 +351,11 @@
 needed. At the minimum, the <em class="parameter"><code>render</code></em> method should be overridden to
 output/present buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -468,8 +472,11 @@
 <p>
 This function is mostly used by subclasses.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -509,8 +516,11 @@
 <p>
 Get the currently configured latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -537,8 +547,11 @@
 <p>
 This function should be called with the PREROLL_LOCK held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -577,8 +590,11 @@
 This function should only be called with the PREROLL_LOCK held, like in the
 render function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -619,8 +635,11 @@
 return and is not adjusted with any latency or offset configured in the
 sink.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -654,8 +673,11 @@
 buffers will be used to schedule the exact render time of its
 contents.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -676,8 +698,11 @@
 Checks if <em class="parameter"><code>sink</code></em> is currently configured to synchronize against the
 clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -701,8 +726,11 @@
 buffer timestamp and the current clock time. A value of -1 means
 an unlimited time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -723,8 +751,11 @@
 Gets the max lateness value. See gst_base_sink_set_max_lateness for
 more details.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -747,8 +778,11 @@
 <p>
 Configures <em class="parameter"><code>sink</code></em> to send Quality-of-Service events upstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -769,8 +803,11 @@
 Checks if <em class="parameter"><code>sink</code></em> is currently configured to send Quality-of-Service events
 upstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -794,8 +831,11 @@
 preroll buffer. This feature is useful if the sink does not synchronize
 against the clock or when it is dealing with sparse streams.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -816,8 +856,11 @@
 Checks if <em class="parameter"><code>sink</code></em> is currently configured to perform asynchronous state
 changes to PAUSED.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -842,8 +885,11 @@
 rendering. This function can be used to fix playback of badly timestamped
 buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -863,8 +909,11 @@
 <p>
 Get the synchronisation offset of <em class="parameter"><code>sink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -895,8 +944,11 @@
 <p>
 This function is usually called by subclasses.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -918,8 +970,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -947,8 +1002,11 @@
 <p>
 Free-function: gst_sample_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -973,8 +1031,11 @@
 Set the number of bytes that the sink will pull when it is operating in pull
 mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -996,8 +1057,11 @@
 Get the number of bytes that the sink will pull when it is operating in pull
 mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -1019,8 +1083,11 @@
 Get the time that will be inserted between frames to control the 
 maximum buffers per second.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -1044,8 +1111,11 @@
 can be used to control the maximum buffers per second that the sink
 will render.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -1067,8 +1137,11 @@
 <p>
 Gives the pointer to the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base sink instance</td>
@@ -1169,6 +1242,18 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstBaseSink--max-bitrate"></a><h3>The <code class="literal">"max-bitrate"</code> property</h3>
+<pre class="programlisting">  "max-bitrate"              <span class="type">guint64</span>               : Read / Write</pre>
+<p>
+Control the maximum amount of bits that will be rendered per second.
+Setting this property to a value bigger than 0 will make the sink delay
+rendering of the buffers when it would exceed to max-bitrate.
+</p>
+<p>Default value: 0</p>
+<p class="since">Since 1.1.1</p>
+</div>
+<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"             <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>
diff --git a/docs/libs/html/GstBaseSrc.html b/docs/libs/html/GstBaseSrc.html
index a9376ae..5eddb03 100644
--- a/docs/libs/html/GstBaseSrc.html
+++ b/docs/libs/html/GstBaseSrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseSrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -104,7 +104,7 @@
 This is a generice base class for source elements. The following
 types of sources are supported:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>random access sources like files</p></li>
 <li class="listitem"><p>seekable sources</p></li>
 <li class="listitem"><p>live sources</p></li>
@@ -121,7 +121,7 @@
 <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">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>The format is set to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -133,7 +133,7 @@
 be met to make the element seekable in push mode when the format is not
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <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>
@@ -248,7 +248,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8146128"></a><h3>Controlled shutdown of live sources in applications</h3>
+<a name="idp6538368"></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
@@ -358,8 +358,11 @@
 needed. At the minimum, the <em class="parameter"><code>create</code></em> method should be overridden to produce
 buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -480,8 +483,11 @@
 <p>
 The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> flags that a basesrc element may have.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <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>
@@ -516,8 +522,11 @@
 to a state change to READY or a FLUSH event (in which case this function
 returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -539,8 +548,11 @@
 <p>
 Check if an element is in live mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -570,8 +582,11 @@
 pipeline, the state change return value of the live source will
 be GST_STATE_CHANGE_NO_PREROLL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -600,8 +615,11 @@
 <p>
 This function must only be called in states &lt; <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -630,8 +648,11 @@
 <p>
 This function is mostly used by subclasses.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -666,8 +687,11 @@
 <p>
 Get the number of bytes that <em class="parameter"><code>src</code></em> will push out with each buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -689,8 +713,11 @@
 Set the number of bytes that <em class="parameter"><code>src</code></em> will push out with each buffer. When
 <em class="parameter"><code>blocksize</code></em> is set to -1, a default length will be used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -710,8 +737,11 @@
 <p>
 Query if <em class="parameter"><code>src</code></em> timestamps outgoing buffers based on the current running_time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -735,8 +765,11 @@
 current running_time of the pipeline. This property is mostly useful for live
 sources.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -759,8 +792,11 @@
 read past current tracked size.  Otherwise, size is checked for upon each
 read.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -789,8 +825,11 @@
 The format for the new segment will be the current format of the source, as
 configured with <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -824,8 +863,11 @@
 <p>
 Set new caps on the basesrc source pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -858,8 +900,11 @@
 <p>
 Unref the <em class="parameter"><code>allocator</code></em> after use it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -885,8 +930,11 @@
 <div class="refsect2">
 <a name="gst-base-src-get-buffer-pool"></a><h3>gst_base_src_get_buffer_pool ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferPool.html#GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> *     gst_base_src_get_buffer_pool        (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -910,8 +958,11 @@
 <p>
 Gives the pointer to the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base source instance</td>
diff --git a/docs/libs/html/GstBaseTransform.html b/docs/libs/html/GstBaseTransform.html
index 7ca5a28..b52ccd1 100644
--- a/docs/libs/html/GstBaseTransform.html
+++ b/docs/libs/html/GstBaseTransform.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseTransform</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -99,7 +99,7 @@
 <p>
 It provides for:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>one sinkpad and one srcpad</p></li>
 <li class="listitem"><p>
      Possible formats on sink and source pad implemented
@@ -118,14 +118,14 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8789696"></a><h3>Use Cases</h3>
+<a name="idp6953552"></a><h3>Use Cases</h3>
 <p>
 </p>
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem">
 <div class="itemizedlist">
 <p class="title"><b>Passthrough mode</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Element has no interest in modifying the buffer. It may want to inspect it,
     in which case the element should have a transform_ip function. If there
@@ -146,7 +146,7 @@
 </div>
 <div class="itemizedlist">
 <p class="title"><b>Example elements</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">Level</li>
 <li class="listitem">Videoscale, audioconvert, videoconvert, audioresample in
     certain modes.</li>
@@ -157,7 +157,7 @@
 <div class="itemizedlist">
 <p class="title"><b>Modifications in-place - input buffer and output buffer are the
     same thing.</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     The element must implement a transform_ip function.
   </p></li>
@@ -180,7 +180,7 @@
 </div>
 <div class="itemizedlist">
 <p class="title"><b>Example elements</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">Volume</li>
 <li class="listitem">Audioconvert in certain modes (signed/unsigned
     conversion)</li>
@@ -192,7 +192,7 @@
 <li class="listitem">
 <div class="itemizedlist">
 <p class="title"><b>Modifications only to the caps/metadata of a buffer</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     The element does not require writable data, but non-writable buffers
     should be subbuffered so that the meta-information can be replaced.
@@ -206,7 +206,7 @@
 </div>
 <div class="itemizedlist">
 <p class="title"><b>Example elements</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">Capsfilter when setting caps on outgoing buffers that have
     none.</li>
 <li class="listitem">identity when it is going to re-timestamp buffers by
@@ -217,7 +217,7 @@
 <li class="listitem">
 <div class="itemizedlist">
 <p class="title"><b>Normal mode</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     always_in_place flag is not set, or there is no transform_ip function
   </p></li>
@@ -231,23 +231,22 @@
 </div>
 <div class="itemizedlist">
 <p class="title"><b>Example elements</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem">Videoscale, videoconvert, audioconvert when doing
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Videoscale, videoconvert, audioconvert when doing
     scaling/conversions</li></ul>
 </div>
 </li>
 <li class="listitem">
 <div class="itemizedlist">
 <p class="title"><b>Special output buffer allocations</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
     Elements which need to do special allocation of their output buffers
-    other than what gst_buffer_pad_alloc allows should implement a
-    prepare_output_buffer method, which calls the parent implementation and
-    passes the newly allocated buffer.
+    beyond allocating output buffers via the negotiated allocator or
+    buffer pool should implement the prepare_output_buffer method.
   </p></li></ul>
 </div>
 <div class="itemizedlist">
 <p class="title"><b>Example elements</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem">efence</li></ul>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">efence</li></ul>
 </div>
 </li>
 </ol></div>
@@ -258,16 +257,16 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp5740896"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
+<a name="idp5222304"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
 <p>
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 <p>
   </p>
 <div class="itemizedlist">
 <p class="title"><b>passthrough</b></p>
-<ul class="itemizedlist" type="circle">
+<ul class="itemizedlist" style="list-style-type: circle; ">
 <li class="listitem"><p>
       Implies that in the current configuration, the sub-class is not
       interested in modifying the buffers.
@@ -287,7 +286,7 @@
   </p>
 <div class="itemizedlist">
 <p class="title"><b>always_in_place</b></p>
-<ul class="itemizedlist" type="circle">
+<ul class="itemizedlist" style="list-style-type: circle; ">
 <li class="listitem"><p>
       Determines whether a non-writable buffer will be copied before passing
       to the transform_ip function.
@@ -391,8 +390,11 @@
 If the element can overwrite the input data with the results (data is of the
 same type and quantity) it should provide <em class="parameter"><code>transform_ip</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -563,8 +565,11 @@
 <p>
 See if <em class="parameter"><code>trans</code></em> is configured as a passthrough transform.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -594,8 +599,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -629,8 +637,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -652,8 +663,11 @@
 <p>
 See if <em class="parameter"><code>trans</code></em> is configured as a in_place transform.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -676,7 +690,7 @@
 Determines whether a non-writable buffer will be copied before passing
 to the transform_ip function.
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">Always TRUE if no transform function is implemented.</li>
 <li class="listitem">Always FALSE if ONLY transform function is implemented.</li>
 </ul></div>
@@ -685,8 +699,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -707,8 +724,11 @@
 <p>
 Queries if the transform will handle QoS.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -734,8 +754,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -764,8 +787,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -805,8 +831,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -833,8 +862,11 @@
 <p>
 Unref the <em class="parameter"><code>allocator</code></em> after use it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -860,8 +892,11 @@
 <div class="refsect2">
 <a name="gst-base-transform-get-buffer-pool"></a><h3>gst_base_transform_get_buffer_pool ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferPool.html#GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> *     gst_base_transform_get_buffer_pool  (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -903,8 +938,11 @@
 <p>
 Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base transform instance</td>
@@ -919,8 +957,11 @@
 <p>
 Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base transform instance</td>
diff --git a/docs/libs/html/GstCollectPads.html b/docs/libs/html/GstCollectPads.html
index 2355dfe..aa9dafd 100644
--- a/docs/libs/html/GstCollectPads.html
+++ b/docs/libs/html/GstCollectPads.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstCollectPads</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -140,7 +140,7 @@
 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">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-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>.
@@ -168,7 +168,7 @@
   </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>,
-    <code class="function">gst_collect_pads_read()</code> 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.
+    <a class="link" href="GstCollectPads.html#gst-collect-pads-read-buffer" title="gst_collect_pads_read_buffer ()"><code class="function">gst_collect_pads_read_buffer()</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
@@ -178,7 +178,7 @@
     no pad is blocked and the element can finish streaming.
   </p></li>
 <li class="listitem"><p>
-    <code class="function">gst_collect_pads_collect()</code> and <code class="function">gst_collect_pads_collect_range()</code> can be used by
+    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstCollectPads.html#gst-collect-pads-collect"><code class="function">gst_collect_pads_collect()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstCollectPads.html#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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTask.html"><span class="type">GstTask</span></a> to drive the collect_pads. This feature is however
     not yet implemented.
   </p></li>
@@ -206,8 +206,11 @@
 <p>
 Collectpads object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -230,8 +233,11 @@
 <p>
 Structure used by the collect_pads.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -267,8 +273,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -287,8 +296,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -328,8 +340,11 @@
 <p>
 A function for comparing two timestamps of buffers or newsegments collected on one pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -380,8 +395,11 @@
 <code class="function">gst_collect_pads_event_default()</code>) or dropping events (such typical cases
 being handled by the default handler).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -428,8 +446,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -470,8 +491,11 @@
 <p>
 A function that will be called when all pads have received data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -501,8 +525,11 @@
   GST_COLLECT_PADS_STATE_LOCKED = 1 &lt;&lt; 4
 } GstCollectPadsStateFlags;
 </pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-COLLECT-PADS-STATE-EOS:CAPS"></a><span class="term"><code class="literal">GST_COLLECT_PADS_STATE_EOS</code></span></p></td>
@@ -545,8 +572,11 @@
 A flags word containing <a class="link" href="GstCollectPads.html#GstCollectPadsStateFlags" title="enum GstCollectPadsStateFlags"><span class="type">GstCollectPadsStateFlags</span></a> flags set
 on this collected pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><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>
@@ -561,8 +591,11 @@
 <p>
 Gives the status of a specific flag on a collected pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -583,8 +616,11 @@
 <p>
 Sets a state flag on a collected pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -605,8 +641,11 @@
 <p>
 Clears a state flag on a collected pad.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -629,8 +668,11 @@
 serialize execution among the various streams being collected, and in
 protecting the resources used to accomplish this.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -646,8 +688,11 @@
 <p>
 Lock the stream lock of <em class="parameter"><code>pads</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -663,8 +708,11 @@
 <p>
 Unlock the stream lock of <em class="parameter"><code>pads</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -682,8 +730,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -731,8 +782,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -780,8 +834,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -810,8 +867,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
 <td>the collectpads to use</td>
@@ -829,8 +889,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
 <td>the collectpads to use</td>
@@ -853,8 +916,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -884,8 +950,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -920,8 +989,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -952,8 +1024,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -988,8 +1063,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1030,8 +1108,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1070,8 +1151,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1102,8 +1186,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1138,8 +1225,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1166,8 +1256,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1200,8 +1293,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1234,8 +1330,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
@@ -1270,8 +1369,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
diff --git a/docs/libs/html/GstInterpolationControlSource.html b/docs/libs/html/GstInterpolationControlSource.html
index 2b865b6..c53b95d 100644
--- a/docs/libs/html/GstInterpolationControlSource.html
+++ b/docs/libs/html/GstInterpolationControlSource.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstInterpolationControlSource</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstTimedValueControlSource.html" title="GstTimedValueControlSource">
@@ -103,8 +103,11 @@
 <p>
 The various interpolation modes available.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-INTERPOLATION-MODE-NONE:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATION_MODE_NONE</code></span></p></td>
@@ -132,8 +135,11 @@
 <p>
 This returns a new, unbound <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
diff --git a/docs/libs/html/GstLFOControlSource.html b/docs/libs/html/GstLFOControlSource.html
index 143e430..4df5e48 100644
--- a/docs/libs/html/GstLFOControlSource.html
+++ b/docs/libs/html/GstLFOControlSource.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstLFOControlSource</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -72,13 +72,13 @@
 <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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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.
+<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> is a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>, that provides several periodic
+waveforms as control values.
 </p>
 <p>
-To use <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> get a new instance by calling <a class="link" href="GstLFOControlSource.html#gst-lfo-control-source-new" title="gst_lfo_control_source_new ()"><code class="function">gst_lfo_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 the relevant properties or use
-gst_lfo_control_source_set_waveform.
+To use <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> get a new instance by calling
+<a class="link" href="GstLFOControlSource.html#gst-lfo-control-source-new" title="gst_lfo_control_source_new ()"><code class="function">gst_lfo_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 the relevant
+properties.
 </p>
 <p>
 All functions are MT-safe.
@@ -107,8 +107,11 @@
 <p>
 The various waveform modes available.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-LFO-WAVEFORM-SINE:CAPS"></a><span class="term"><code class="literal">GST_LFO_WAVEFORM_SINE</code></span></p></td>
@@ -145,8 +148,11 @@
 <p>
 This returns a new, unbound <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -175,7 +181,7 @@
 of this <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>. It should be large enough
 so that the period is longer than one nanosecond.
 </p>
-<p>Allowed values: &gt;= 0</p>
+<p>Allowed values: &gt;= G_MINDOUBLE</p>
 <p>Default value: 1</p>
 </div>
 <hr>
diff --git a/docs/libs/html/GstNetClientClock.html b/docs/libs/html/GstNetClientClock.html
index e4f308f..8162bbb 100644
--- a/docs/libs/html/GstNetClientClock.html
+++ b/docs/libs/html/GstNetClientClock.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstNetClientClock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -118,8 +118,11 @@
 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 
 <em class="parameter"><code>remote_port</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
diff --git a/docs/libs/html/GstNetTimeProvider.html b/docs/libs/html/GstNetTimeProvider.html
index 33f4f99..8d5ab30 100644
--- a/docs/libs/html/GstNetTimeProvider.html
+++ b/docs/libs/html/GstNetTimeProvider.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstNetTimeProvider</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -107,8 +107,11 @@
 <p>
 Allows network clients to get the current time of <em class="parameter"><code>clock</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -116,7 +119,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
-<td>an address to bind on as a dotted quad (xxx.xxx.xxx.xxx), or NULL
+<td>an address to bind on as a dotted quad (xxx.xxx.xxx.xxx), IPv6 address, or NULL
 to bind to all addresses</td>
 </tr>
 <tr>
diff --git a/docs/libs/html/GstPushSrc.html b/docs/libs/html/GstPushSrc.html
index d6b1e3d..d02cab5 100644
--- a/docs/libs/html/GstPushSrc.html
+++ b/docs/libs/html/GstPushSrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPushSrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
diff --git a/docs/libs/html/GstTestClock.html b/docs/libs/html/GstTestClock.html
new file mode 100644
index 0000000..3305e55
--- /dev/null
+++ b/docs/libs/html/GstTestClock.html
@@ -0,0 +1,754 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstTestClock</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstStreamConsistency.html" title="GstStreamConsistency">
+<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-libs-GstStreamConsistency.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 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">
+<a href="#GstTestClock.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#GstTestClock.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#GstTestClock.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#GstTestClock.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="GstTestClock"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GstTestClock.top_of_page"></a>GstTestClock</span></h2>
+<p>GstTestClock — Controllable, deterministic clock for GStreamer unit tests</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GstTestClock.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/check/gsttestclock.h&gt;
+
+struct              <a class="link" href="GstTestClock.html#GstTestClock-struct" title="struct GstTestClock">GstTestClock</a>;
+struct              <a class="link" href="GstTestClock.html#GstTestClockClass" title="struct GstTestClockClass">GstTestClockClass</a>;
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstTestClock.html#gst-test-clock-new" title="gst_test_clock_new ()">gst_test_clock_new</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstTestClock.html#gst-test-clock-new-with-start-time" title="gst_test_clock_new_with_start_time ()">gst_test_clock_new_with_start_time</a>  (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> start_time</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTestClock.html#gst-test-clock-set-time" title="gst_test_clock_set_time ()">gst_test_clock_set_time</a>             (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> new_time</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTestClock.html#gst-test-clock-advance-time" title="gst_test_clock_advance_time ()">gst_test_clock_advance_time</a>         (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> delta</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="GstTestClock.html#gst-test-clock-peek-id-count" title="gst_test_clock_peek_id_count ()">gst_test_clock_peek_id_count</a>        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTestClock.html#gst-test-clock-has-id" title="gst_test_clock_has_id ()">gst_test_clock_has_id</a>               (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTestClock.html#gst-test-clock-peek-next-pending-id" title="gst_test_clock_peek_next_pending_id ()">gst_test_clock_peek_next_pending_id</a> (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> *pending_id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTestClock.html#gst-test-clock-wait-for-next-pending-id" title="gst_test_clock_wait_for_next_pending_id ()">gst_test_clock_wait_for_next_pending_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> *pending_id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTestClock.html#gst-test-clock-wait-for-pending-id-count" title="gst_test_clock_wait_for_pending_id_count ()">gst_test_clock_wait_for_pending_id_count</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="returnvalue">GstClockID</span></a>          <a class="link" href="GstTestClock.html#gst-test-clock-process-next-clock-id" title="gst_test_clock_process_next_clock_id ()">gst_test_clock_process_next_clock_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstTestClock.html#gst-test-clock-get-next-entry-time" title="gst_test_clock_get_next_entry_time ()">gst_test_clock_get_next_entry_time</a>  (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTestClock.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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html">GstClock</a>
+                     +----GstTestClock
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTestClock.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="GstTestClock.html#GstTestClock--start-time" title='The "start-time" property'>start-time</a>"               <span class="type">guint64</span>               : Read / Write / Construct Only
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTestClock.description"></a><h2>Description</h2>
+<p>
+GstTestClock is an implementation of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> which has different
+behaviour compared to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html"><span class="type">GstSystemClock</span></a>. Time for <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html"><span class="type">GstSystemClock</span></a> advances
+according to the system time, while time for <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> changes only
+when <a class="link" href="GstTestClock.html#gst-test-clock-set-time" title="gst_test_clock_set_time ()"><code class="function">gst_test_clock_set_time()</code></a> or <a class="link" href="GstTestClock.html#gst-test-clock-advance-time" title="gst_test_clock_advance_time ()"><code class="function">gst_test_clock_advance_time()</code></a> are
+called. <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> provides unit tests with the possibility to
+precisely advance the time in a deterministic manner, independent of the
+system time or any other external factors.
+</p>
+<p>
+</p>
+<div class="example">
+<a name="idp10016464"></a><p class="title"><b>Example 1. Advancing the time of a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</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
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
+<span class="gtkdoc ppc">#include &lt;gst/check/gsttestclock.h&gt;</span>
+
+GstClock <span class="gtkdoc opt">*</span>clock<span class="gtkdoc opt">;</span>
+GstTestClock <span class="gtkdoc opt">*</span>test_clock<span class="gtkdoc opt">;</span>
+
+clock <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-new">gst_test_clock_new</a></span> <span class="gtkdoc opt">();</span>
+test_clock <span class="gtkdoc opt">=</span> <span class="function">GST_TEST_CLOCK</span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Time: %&quot;</span> GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time">gst_clock_get_time</a></span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">)));</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-advance-time">gst_test_clock_advance_time</a></span> <span class="gtkdoc opt">(</span> test_clock<span class="gtkdoc opt">,</span> <span class="number">1</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Time: %&quot;</span> GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time">gst_clock_get_time</a></span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">)));</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#g-usleep">g_usleep</a></span> <span class="gtkdoc opt">(</span><span class="number">10</span> <span class="gtkdoc opt">*</span> G_USEC_PER_SEC<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Time: %&quot;</span> GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time">gst_clock_get_time</a></span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">)));</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-set-time">gst_test_clock_set_time</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> <span class="number">42</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Time: %&quot;</span> GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time">gst_clock_get_time</a></span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">)));</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
+<p><br class="example-break">
+</p>
+<p>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> allows for setting up single shot or periodic clock notifications
+as well as waiting for these notifications synchronously (using
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-wait"><code class="function">gst_clock_id_wait()</code></a>) or asynchronously (using <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-wait-async"><code class="function">gst_clock_id_wait_async()</code></a> or
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-wait-async-full"><code class="function">gst_clock_id_wait_async_full()</code></a>). This is used by many GStreamer elements,
+among them <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> and <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a>.
+</p>
+<p>
+<a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> keeps track of these clock notifications. By calling
+<a class="link" href="GstTestClock.html#gst-test-clock-wait-for-next-pending-id" title="gst_test_clock_wait_for_next_pending_id ()"><code class="function">gst_test_clock_wait_for_next_pending_id()</code></a> or
+<a class="link" href="GstTestClock.html#gst-test-clock-wait-for-pending-id-count" title="gst_test_clock_wait_for_pending_id_count ()"><code class="function">gst_test_clock_wait_for_pending_id_count()</code></a> a unit tests may wait for the
+next one or several clock notifications to be requested. Additionally unit
+tests may release blocked waits in a controlled fashion by calling
+<a class="link" href="GstTestClock.html#gst-test-clock-process-next-clock-id" title="gst_test_clock_process_next_clock_id ()"><code class="function">gst_test_clock_process_next_clock_id()</code></a>. This way a unit test can control the
+inaccuracy (jitter) of clock notifications, since the test can decide to
+release blocked waits when the clock time has advanced exactly to, or past,
+the requested clock notification time.
+</p>
+<p>
+There are also interfaces for determining if a notification belongs to a
+<a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> or not, as well as getting the number of requested clock
+notifications so far.
+</p>
+<p>
+N.B.: When a unit test waits for a certain amount of clock notifications to
+be requested in <a class="link" href="GstTestClock.html#gst-test-clock-wait-for-next-pending-id" title="gst_test_clock_wait_for_next_pending_id ()"><code class="function">gst_test_clock_wait_for_next_pending_id()</code></a> or
+<a class="link" href="GstTestClock.html#gst-test-clock-wait-for-pending-id-count" title="gst_test_clock_wait_for_pending_id_count ()"><code class="function">gst_test_clock_wait_for_pending_id_count()</code></a> then these functions may block
+for a long time. If they block forever then the expected clock notifications
+were never requested from <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a>, and so the assumptions in the code
+of the unit test are wrong. The unit test case runner in <span class="type">GstCheck</span> is
+expected to catch these cases either by the default test case timeout or the
+one set for the unit test by calling <code class="function">tcase_set_timeout()</code>.
+</p>
+<p>
+The sample code below assumes that the element under test will delay a
+buffer pushed on the source pad by some latency until it arrives on the sink
+pad. Moreover it is assumed that the element will at some point call
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-wait"><code class="function">gst_clock_id_wait()</code></a> to synchronously wait for a specific time. The first
+buffer sent will arrive exactly on time only delayed by the latency. The
+second buffer will arrive a little late (7ms) due to simulated jitter in the
+clock notification.
+</p>
+<p>
+</p>
+<div class="example">
+<a name="idp14901808"></a><p class="title"><b>Example 2. Demonstration of how to work with clock notifications and <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</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
+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
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
+<span class="gtkdoc ppc">#include &lt;gst/check/gstcheck.h&gt;</span>
+<span class="gtkdoc ppc">#include &lt;gst/check/gsttestclock.h&gt;</span>
+
+GstClockTime latency<span class="gtkdoc opt">;</span>
+GstElement <span class="gtkdoc opt">*</span>element<span class="gtkdoc opt">;</span>
+GstPad <span class="gtkdoc opt">*</span>srcpad<span class="gtkdoc opt">;</span>
+GstClock <span class="gtkdoc opt">*</span>clock<span class="gtkdoc opt">;</span>
+GstTestClock <span class="gtkdoc opt">*</span>test_clock<span class="gtkdoc opt">;</span>
+GstBuffer buf<span class="gtkdoc opt">;</span>
+GstClockID pending_id<span class="gtkdoc opt">;</span>
+GstClockID processed_id<span class="gtkdoc opt">;</span>
+
+latency <span class="gtkdoc opt">=</span> <span class="number">42</span> <span class="gtkdoc opt">*</span> GST_MSECOND<span class="gtkdoc opt">;</span>
+element <span class="gtkdoc opt">=</span> <span class="function">create_element</span> <span class="gtkdoc opt">(</span>latency<span class="gtkdoc opt">, ...);</span>
+srcpad <span class="gtkdoc opt">=</span> <span class="function">get_source_pad</span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">);</span>
+
+clock <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-new">gst_test_clock_new</a></span> <span class="gtkdoc opt">();</span>
+test_clock <span class="gtkdoc opt">=</span> <span class="function">GST_TEST_CLOCK</span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-set-clock">gst_element_set_clock</a></span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">,</span> clock<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Set time, create and push the first buffer</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-set-time">gst_test_clock_set_time</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+buf <span class="gtkdoc opt">=</span> <span class="function">create_test_buffer</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time">gst_clock_get_time</a></span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">), ...);</span>
+<span class="function">gst_assert_cmpint</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-push">gst_pad_push</a></span> <span class="gtkdoc opt">(</span>srcpad<span class="gtkdoc opt">,</span> buf<span class="gtkdoc opt">), ==,</span> GST_FLOW_OK<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Block until element is waiting for a clock notification</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-wait-for-next-pending-id">gst_test_clock_wait_for_next_pending_id</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">, &amp;</span>pending_id<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Advance to the requested time of the clock notification</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-advance-time">gst_test_clock_advance_time</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> latency<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Release the next blocking wait and make sure it is the one from element</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+processed_id <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-process-next-clock-id">gst_test_clock_process_next_clock_id</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>processed_id <span class="gtkdoc opt">==</span> pending_id<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint">g_assert_cmpint</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-ENTRY-STATUS:CAPS">GST_CLOCK_ENTRY_STATUS</a></span> <span class="gtkdoc opt">(</span>processed_id<span class="gtkdoc opt">), ==,</span> GST_CLOCK_OK<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-unref">gst_clock_id_unref</a></span> <span class="gtkdoc opt">(</span>pending_id<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-unref">gst_clock_id_unref</a></span> <span class="gtkdoc opt">(</span>processed_id<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Validate that element produced an output buffer and check its timestamp</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint">g_assert_cmpint</a></span> <span class="gtkdoc opt">(</span><span class="function">get_number_of_output_buffer</span> <span class="gtkdoc opt">(...), ==,</span> <span class="number">1</span><span class="gtkdoc opt">);</span>
+buf <span class="gtkdoc opt">=</span> <span class="function">get_buffer_pushed_by_element</span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">, ...);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint">g_assert_cmpint</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP:CAPS">GST_BUFFER_TIMESTAMP</a></span> <span class="gtkdoc opt">(</span>buf<span class="gtkdoc opt">), ==,</span> latency<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-unref">gst_buffer_unref</a></span> <span class="gtkdoc opt">(</span>buf<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Check that element does not wait for any clock notification</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-peek-next-pending-id">gst_test_clock_peek_next_pending_id</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">) ==</span> FALSE<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Set time, create and push the second buffer</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-advance-time">gst_test_clock_advance_time</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> <span class="number">10</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
+buf <span class="gtkdoc opt">=</span> <span class="function">create_test_buffer</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time">gst_clock_get_time</a></span> <span class="gtkdoc opt">(</span>clock<span class="gtkdoc opt">), ...);</span>
+<span class="function">gst_assert_cmpint</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-push">gst_pad_push</a></span> <span class="gtkdoc opt">(</span>srcpad<span class="gtkdoc opt">,</span> buf<span class="gtkdoc opt">), ==,</span> GST_FLOW_OK<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Block until element is waiting for a new clock notification</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-wait-for-next-pending-id">gst_test_clock_wait_for_next_pending_id</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">, &amp;</span>pending_id<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Advance past 7ms beyond the requested time of the clock notification</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-advance-time">gst_test_clock_advance_time</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> latency <span class="gtkdoc opt">+</span> <span class="number">7</span> <span class="gtkdoc opt">*</span> GST_MSECOND<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Release the next blocking wait and make sure it is the one from element</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+processed_id <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-process-next-clock-id">gst_test_clock_process_next_clock_id</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>processed_id <span class="gtkdoc opt">==</span> pending_id<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint">g_assert_cmpint</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-ENTRY-STATUS:CAPS">GST_CLOCK_ENTRY_STATUS</a></span> <span class="gtkdoc opt">(</span>processed_id<span class="gtkdoc opt">), ==,</span> GST_CLOCK_OK<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-unref">gst_clock_id_unref</a></span> <span class="gtkdoc opt">(</span>pending_id<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-id-unref">gst_clock_id_unref</a></span> <span class="gtkdoc opt">(</span>processed_id<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Validate that element produced an output buffer and check its timestamp</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint">g_assert_cmpint</a></span> <span class="gtkdoc opt">(</span><span class="function">get_number_of_output_buffer</span> <span class="gtkdoc opt">(...), ==,</span> <span class="number">1</span><span class="gtkdoc opt">);</span>
+buf <span class="gtkdoc opt">=</span> <span class="function">get_buffer_pushed_by_element</span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">, ...);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint">g_assert_cmpint</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP:CAPS">GST_BUFFER_TIMESTAMP</a></span> <span class="gtkdoc opt">(</span>buf<span class="gtkdoc opt">), ==,</span>
+    <span class="number">10</span> <span class="gtkdoc opt">*</span> GST_SECOND <span class="gtkdoc opt">+</span> latency <span class="gtkdoc opt">+</span> <span class="number">7</span> <span class="gtkdoc opt">*</span> GST_MSECOND<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-unref">gst_buffer_unref</a></span> <span class="gtkdoc opt">(</span>buf<span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-INFO:CAPS">GST_INFO</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Check that element does not wait for any clock notification</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#gst-test-clock-peek-next-pending-id">gst_test_clock_peek_next_pending_id</a></span> <span class="gtkdoc opt">(</span>test_clock<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">) ==</span> FALSE<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
+<p><br class="example-break">
+</p>
+<p>
+Since <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> is only supposed to be used in unit tests it calls
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert"><code class="function">g_assert()</code></a>, <a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpint"><code class="function">g_assert_cmpint()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert-cmpuint"><code class="function">g_assert_cmpuint()</code></a> to validate all function
+arguments. This will highlight any issues with the unit test code itself.
+</p>
+</div>
+<div class="refsect1">
+<a name="GstTestClock.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTestClock-struct"></a><h3>struct GstTestClock</h3>
+<pre class="programlisting">struct GstTestClock;</pre>
+<p>
+A <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> structure which is based on a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> along with some
+private data.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTestClockClass"></a><h3>struct GstTestClockClass</h3>
+<pre class="programlisting">struct GstTestClockClass {
+  GstClockClass parent_class;
+};
+</pre>
+<p>
+The class of a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a>, which has no virtual methods to override.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockClass"><span class="type">GstClockClass</span></a> <em class="structfield"><code><a name="GstTestClockClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class structure</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-new"></a><h3>gst_test_clock_new ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="returnvalue">GstClock</span></a> *          gst_test_clock_new                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a new test clock with its time set to zero.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> cast to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-new-with-start-time"></a><h3>gst_test_clock_new_with_start_time ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="returnvalue">GstClock</span></a> *          gst_test_clock_new_with_start_time  (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> start_time</code></em>);</pre>
+<p>
+Creates a new test clock with its time set to the specified time.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start_time</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> set to the desired start time of the clock.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> cast to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</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>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-set-time"></a><h3>gst_test_clock_set_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_test_clock_set_time             (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> new_time</code></em>);</pre>
+<p>
+Sets the time of <em class="parameter"><code>test_clock</code></em> to the time given by <em class="parameter"><code>new_time</code></em>. The time of
+<em class="parameter"><code>test_clock</code></em> is monotonically increasing, therefore providing a <em class="parameter"><code>new_time</code></em>
+which is earlier or equal to the time of the clock as given by
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time"><code class="function">gst_clock_get_time()</code></a> is a programming error.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> of which to set the time</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>new_time</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> later than that returned by <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#gst-clock-get-time"><code class="function">gst_clock_get_time()</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-advance-time"></a><h3>gst_test_clock_advance_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_test_clock_advance_time         (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> delta</code></em>);</pre>
+<p>
+Advances the time of the <em class="parameter"><code>test_clock</code></em> by the amount given by <em class="parameter"><code>delta</code></em>. The
+time of <em class="parameter"><code>test_clock</code></em> is monotonically increasing, therefore providing a
+<em class="parameter"><code>delta</code></em> which is negative or zero is a programming error.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> for which to increase the time</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>delta</code></em> :</span></p></td>
+<td>a positive <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> to be added to the time of the clock</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-peek-id-count"></a><h3>gst_test_clock_peek_id_count ()</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_test_clock_peek_id_count        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>);</pre>
+<p>
+Determine the number of pending clock notifications that have been
+requested from the <em class="parameter"><code>test_clock</code></em>.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> for which to count notifications</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of pending clock notifications.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-has-id"></a><h3>gst_test_clock_has_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_test_clock_has_id               (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> id</code></em>);</pre>
+<p>
+Checks whether <em class="parameter"><code>test_clock</code></em> was requested to provide the clock notification
+given by <em class="parameter"><code>id</code></em>.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> to ask if it provided the notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> clock notification. <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 clock has been asked to provide the given clock
+notification, <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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-peek-next-pending-id"></a><h3>gst_test_clock_peek_next_pending_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_test_clock_peek_next_pending_id (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> *pending_id</code></em>);</pre>
+<p>
+Determines if the <em class="parameter"><code>pending_id</code></em> is the next clock notification scheduled to
+be triggered given the current time of the <em class="parameter"><code>test_clock</code></em>.
+</p>
+<p>
+MT safe.
+</p>
+<p>
+Return: <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>pending_id</code></em> is the next clock notification to be
+triggered, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> to check the clock notifications for</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pending_id</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> clock
+notification to look for. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<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>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-wait-for-next-pending-id"></a><h3>gst_test_clock_wait_for_next_pending_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_test_clock_wait_for_next_pending_id
+                                                        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> *pending_id</code></em>);</pre>
+<p>
+Waits until a clock notification is requested from <em class="parameter"><code>test_clock</code></em>. There is no
+timeout for this wait, see the main description of <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a>. A reference
+to the pending clock notification is stored in <em class="parameter"><code>pending_id</code></em>.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>
+<a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> for which to get the pending clock notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pending_id</code></em> :</span></p></td>
+<td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a>
+with information about the pending clock notification. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<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>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-wait-for-pending-id-count"></a><h3>gst_test_clock_wait_for_pending_id_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_test_clock_wait_for_pending_id_count
+                                                        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
+<p>
+Blocks until at least <em class="parameter"><code>count</code></em> clock notifications have been requested from
+<em class="parameter"><code>test_clock</code></em>. There is no timeout for this wait, see the main description of
+<a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a>.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>
+<a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> for which to await having enough pending clock</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>the number of pending clock notifications to wait for</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-process-next-clock-id"></a><h3>gst_test_clock_process_next_clock_id ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="returnvalue">GstClockID</span></a>          gst_test_clock_process_next_clock_id
+                                                        (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>);</pre>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> for which to retrive the next pending clock
+notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockID"><span class="type">GstClockID</span></a> containing the next pending clock
+notification. <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 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-test-clock-get-next-entry-time"></a><h3>gst_test_clock_get_next_entry_time ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_test_clock_get_next_entry_time  (<em class="parameter"><code><a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> *test_clock</code></em>);</pre>
+<p>
+Retrieve the requested time for the next pending clock notification.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>test_clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> to fetch the next clock notification time for</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> set to the time of the next pending clock
+notification. If no clock notifications have been requested
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><code class="literal">GST_CLOCK_TIME_NONE</code></a> will be returned.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GstTestClock.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstTestClock--start-time"></a><h3>The <code class="literal">"start-time"</code> property</h3>
+<pre class="programlisting">  "start-time"               <span class="type">guint64</span>               : Read / Write / Construct Only</pre>
+<p>
+When a <a class="link" href="GstTestClock.html" title="GstTestClock"><span class="type">GstTestClock</span></a> is constructed it will have a certain start time set.
+If the clock was created using <a class="link" href="GstTestClock.html#gst-test-clock-new-with-start-time" title="gst_test_clock_new_with_start_time ()"><code class="function">gst_test_clock_new_with_start_time()</code></a> then
+this property contains the value of the <em class="parameter"><code>start_time</code></em> argument. If
+<a class="link" href="GstTestClock.html#gst-test-clock-new" title="gst_test_clock_new ()"><code class="function">gst_test_clock_new()</code></a> was called the clock started at time zero, and thus
+this property contains the value 0.
+</p>
+<p>Default value: 0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GstTestClock.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html"><span class="type">GstSystemClock</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</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/GstTimedValueControlSource.html b/docs/libs/html/GstTimedValueControlSource.html
index 42a9159..dbe52ab 100644
--- a/docs/libs/html/GstTimedValueControlSource.html
+++ b/docs/libs/html/GstTimedValueControlSource.html
@@ -3,7 +3,7 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-libs-GstDirectControlBinding.html" title="GstDirectControlBinding">
@@ -113,8 +113,11 @@
 <p>
 For use in control source implementations.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -141,8 +144,11 @@
 <p>
 Set the value of given controller-handled property at a certain time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -172,8 +178,11 @@
 <p>
 Sets multiple timed values at once.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -201,8 +210,11 @@
 Returns a read-only copy of the list of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -227,8 +239,11 @@
 Used to remove the value of given controller-handled property at a certain
 time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -253,8 +268,11 @@
 <p>
 Used to remove all time-stamped values of given controller-handled property
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
@@ -269,8 +287,11 @@
 <p>
 Get the number of control points that are set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -291,8 +312,11 @@
 <p>
 Reset the controlled value cache.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
diff --git a/docs/libs/html/GstTriggerControlSource.html b/docs/libs/html/GstTriggerControlSource.html
index 86e4975..33329d3 100644
--- a/docs/libs/html/GstTriggerControlSource.html
+++ b/docs/libs/html/GstTriggerControlSource.html
@@ -3,7 +3,7 @@
 <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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -96,8 +96,11 @@
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <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>
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
index b55e929..0d1abd7 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -42,51 +42,40 @@
 </td></tr>
 </table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
 <a name="glsO"></a><h3 class="title">O</h3>
-<dt>
-<a name="annotation-glossterm-out"></a>out</dt>
-<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
-<dd><p>NULL is ok, both for passing and for returning.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
-<dt>
-<a name="annotation-glossterm-closure"></a>closure</dt>
-<dd><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-closure"></a>closure</span></dt>
+<dd class="glossdef"><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
-<dd><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-array"></a>array</dt>
-<dd><p>Parameter points to an array of items.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
+<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsE"></a><h3 class="title">E</h3>
-<dt>
-<a name="annotation-glossterm-element-type"></a>element-type</dt>
-<dd><p>Generics and defining elements of containers and arrays.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
+<dd class="glossdef"><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>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20container"></a>transfer container</span></dt>
+<dd class="glossdef"><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>
-<dd><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-in"></a>in</span></dt>
+<dd class="glossdef"><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
-<dt>
-<a name="annotation-glossterm-scope%20call"></a>scope call</dt>
-<dd><p>The callback is valid only during the call to the method.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
+<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
-<dd><p>Free data after the code is done.</p></dd>
-<dt>
-<a name="annotation-glossterm-type"></a>type</dt>
-<dd><p>Override the parsed C type with given type</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
+<dd class="glossdef"><p>Override the parsed C type with given type</p></dd>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index 36e79ce..7eb345b 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,8 +20,8 @@
 <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">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-deprecated"></a>Index of deprecated API</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-deprecated"></a>Index of deprecated API</h1></div></div></div>
 <a name="idx"></a>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index e90c739..f98bef7 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -41,14 +41,16 @@
                       | 
                    <a class="shortcut" href="#idxP">P</a>
                       | 
+                   <a class="shortcut" href="#idxQ">Q</a>
+                      | 
                    <a class="shortcut" href="#idxS">S</a>
                       | 
                    <a class="shortcut" href="#idxT">T</a>
 </td></tr>
 </table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-full"></a>API Index</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>API Index</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
 <a class="link" href="GstAdapter.html#GstAdapter-struct" title="GstAdapter">GstAdapter</a>, struct in <a class="link" href="GstAdapter.html" title="GstAdapter">GstAdapter</a>
@@ -147,6 +149,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-int64-hex" title="assert_equals_int64_hex()">assert_equals_int64_hex</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-int-hex" title="assert_equals_int_hex()">assert_equals_int_hex</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-pointer" title="assert_equals_pointer()">assert_equals_pointer</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-string" title="assert_equals_string()">assert_equals_string</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
 </dt>
 <dd></dd>
@@ -155,6 +169,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-uint64-hex" title="assert_equals_uint64_hex()">assert_equals_uint64_hex</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-libs-GstCheck.html#assert-message-error" title="assert_message_error()">assert_message_error</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
 </dt>
 <dd></dd>
@@ -216,6 +234,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstBaseSink.html#GstBaseSink--max-bitrate" title='The "max-bitrate" property'>GstBaseSink:max-bitrate</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--max-lateness" title='The "max-lateness" property'>GstBaseSink:max-lateness</a>, object property in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
@@ -1537,6 +1559,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-events" title="gst_check_setup_events ()">gst_check_setup_events</a>, function in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-events-with-stream-id" title="gst_check_setup_events_with_stream_id ()">gst_check_setup_events_with_stream_id</a>, function in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
 <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>, function in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
 </dt>
 <dd></dd>
@@ -1718,6 +1748,70 @@
 <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-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-GstDirectControlBinding.html#gst-direct-control-binding-new" title="gst_direct_control_binding_new ()">gst_direct_control_binding_new</a>, function in <a class="link" href="gstreamer-libs-GstDirectControlBinding.html" title="GstDirectControlBinding">GstDirectControlBinding</a>
 </dt>
 <dd></dd>
@@ -1740,6 +1834,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-int64-hex" title="fail_unless_equals_int64_hex()">fail_unless_equals_int64_hex</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-int-hex" title="fail_unless_equals_int_hex()">fail_unless_equals_int_hex</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-pointer" title="fail_unless_equals_pointer()">fail_unless_equals_pointer</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-string" title="fail_unless_equals_string()">fail_unless_equals_string</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
 </dt>
 <dd></dd>
@@ -1748,6 +1854,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-uint64-hex" title="fail_unless_equals_uint64_hex()">fail_unless_equals_uint64_hex</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-message-error" title="fail_unless_message_error()">fail_unless_message_error</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
 </dt>
 <dd></dd>
@@ -1871,6 +1981,47 @@
 <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>
 </dt>
 <dd></dd>
+<a name="idxQ"></a><h3 class="title">Q</h3>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray">GstQueueArray</a>, struct in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-drop-element" title="gst_queue_array_drop_element ()">gst_queue_array_drop_element</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-find" title="gst_queue_array_find ()">gst_queue_array_find</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-free" title="gst_queue_array_free ()">gst_queue_array_free</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-get-length" title="gst_queue_array_get_length ()">gst_queue_array_get_length</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-is-empty" title="gst_queue_array_is_empty ()">gst_queue_array_is_empty</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-new" title="gst_queue_array_new ()">gst_queue_array_new</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-peek-head" title="gst_queue_array_peek_head ()">gst_queue_array_peek_head</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-pop-head" title="gst_queue_array_pop_head ()">gst_queue_array_pop_head</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-push-tail" title="gst_queue_array_push_tail ()">gst_queue_array_push_tail</a>, function in <a class="link" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">GstQueueArray</a>
+</dt>
+<dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 <dt>
 <a class="link" href="gstreamer-libs-GstCheck.html#GST-START-TEST:CAPS" title="GST_START_TEST()">GST_START_TEST</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
@@ -1882,6 +2033,62 @@
 <dd></dd>
 <a name="idxT"></a><h3 class="title">T</h3>
 <dt>
+<a class="link" href="GstTestClock.html#GstTestClock-struct" title="struct GstTestClock">GstTestClock</a>, struct in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#GstTestClock--start-time" title='The "start-time" property'>GstTestClock:start-time</a>, object property in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#GstTestClockClass" title="struct GstTestClockClass">GstTestClockClass</a>, struct in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-advance-time" title="gst_test_clock_advance_time ()">gst_test_clock_advance_time</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-get-next-entry-time" title="gst_test_clock_get_next_entry_time ()">gst_test_clock_get_next_entry_time</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-has-id" title="gst_test_clock_has_id ()">gst_test_clock_has_id</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-new" title="gst_test_clock_new ()">gst_test_clock_new</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-new-with-start-time" title="gst_test_clock_new_with_start_time ()">gst_test_clock_new_with_start_time</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-peek-id-count" title="gst_test_clock_peek_id_count ()">gst_test_clock_peek_id_count</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-peek-next-pending-id" title="gst_test_clock_peek_next_pending_id ()">gst_test_clock_peek_next_pending_id</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-process-next-clock-id" title="gst_test_clock_process_next_clock_id ()">gst_test_clock_process_next_clock_id</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-set-time" title="gst_test_clock_set_time ()">gst_test_clock_set_time</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-wait-for-next-pending-id" title="gst_test_clock_wait_for_next_pending_id ()">gst_test_clock_wait_for_next_pending_id</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTestClock.html#gst-test-clock-wait-for-pending-id-count" title="gst_test_clock_wait_for_pending_id_count ()">gst_test_clock_wait_for_pending_id_count</a>, function in <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
+</dt>
+<dd></dd>
+<dt>
 <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>
diff --git a/docs/libs/html/gstreamer-base.html b/docs/libs/html/gstreamer-base.html
index 0738a4c..dd8deee 100644
--- a/docs/libs/html/gstreamer-base.html
+++ b/docs/libs/html/gstreamer-base.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-base"></a>GStreamer Base and Utillity Classes</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstBaseParse.html">GstBaseParse</a></span><span class="refpurpose"> — Base class for stream parsers</span>
 </dt>
@@ -58,6 +58,12 @@
 <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>
+<dt>
+<span class="refentrytitle"><a href="gstreamer-libs-GstQueueArray.html">GstQueueArray</a></span><span class="refpurpose"> — Array based queue object</span>
+</dt>
 </dl></div>
 <p>
         libgstbase-1.0.so provides some base classes to be extended
diff --git a/docs/libs/html/gstreamer-check.html b/docs/libs/html/gstreamer-check.html
index c15f61c..460be7d 100644
--- a/docs/libs/html/gstreamer-check.html
+++ b/docs/libs/html/gstreamer-check.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-check"></a>GStreamer Check Unit Testing</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstCheck.html">GstCheck</a></span><span class="refpurpose"> — Common code for GStreamer unit tests</span>
 </dt>
@@ -32,6 +32,9 @@
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstStreamConsistency.html">GstStreamConsistency</a></span><span class="refpurpose"> — Data flow consistency checker for GStreamer unit tests.</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="GstTestClock.html">GstTestClock</a></span><span class="refpurpose"> — Controllable, deterministic clock for GStreamer unit tests</span>
+</dt>
 </dl></div>
 <p>
         libgstcheck-1.0.so provides functionality for writing
diff --git a/docs/libs/html/gstreamer-control.html b/docs/libs/html/gstreamer-control.html
index 2f3a72c..f576f16 100644
--- a/docs/libs/html/gstreamer-control.html
+++ b/docs/libs/html/gstreamer-control.html
@@ -3,17 +3,17 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstTypeFindHelper.html" title="GstTypeFindHelper">
+<link rel="prev" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">
 <link rel="next" href="gstreamer-libs-GstARGBControlBinding.html" title="GstARGBControlBinding">
 <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="p" href="gstreamer-libs-GstQueueArray.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 1.0 Library Reference Manual</th>
@@ -22,7 +22,7 @@
 <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>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstARGBControlBinding.html">GstARGBControlBinding</a></span><span class="refpurpose"> — attachment for control sources to argb properties</span>
 </dt>
diff --git a/docs/libs/html/gstreamer-hierarchy.html b/docs/libs/html/gstreamer-hierarchy.html
index 144cbbe..3aebd8d 100644
--- a/docs/libs/html/gstreamer-hierarchy.html
+++ b/docs/libs/html/gstreamer-hierarchy.html
@@ -3,25 +3,25 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="prev" href="GstTestClock.html" title="GstTestClock">
 <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-libs-GstStreamConsistency.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstTestClock.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 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">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="gstreamer-hierarchy"></a>Object Hierarchy</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="gstreamer-hierarchy"></a>Object Hierarchy</h1></div></div></div>
 <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>
@@ -34,6 +34,7 @@
                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html">GstClock</a>
                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html">GstSystemClock</a>
                         <a class="link" href="GstNetClientClock.html" title="GstNetClientClock">GstNetClientClock</a>
+                    <a class="link" href="GstTestClock.html" title="GstTestClock">GstTestClock</a>
                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html">GstControlSource</a>
                     <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
                         <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
diff --git a/docs/libs/html/gstreamer-libs.devhelp2 b/docs/libs/html/gstreamer-libs-1.0.devhelp2
similarity index 90%
rename from docs/libs/html/gstreamer-libs.devhelp2
rename to docs/libs/html/gstreamer-libs-1.0.devhelp2
index 5e02baf..cf343de 100644
--- a/docs/libs/html/gstreamer-libs.devhelp2
+++ b/docs/libs/html/gstreamer-libs-1.0.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 1.0 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-1.0" version="2" language="c">
   <chapters>
     <sub name="GStreamer Libraries" link="gstreamer-libs.html">
       <sub name="GStreamer Base and Utillity Classes" link="gstreamer-base.html">
@@ -15,6 +15,8 @@
         <sub name="GstByteWriter" link="gstreamer-libs-GstByteWriter.html"/>
         <sub name="GstCollectPads" link="GstCollectPads.html"/>
         <sub name="GstTypeFindHelper" link="gstreamer-libs-GstTypeFindHelper.html"/>
+        <sub name="GstDataQueue" link="gstreamer-libs-GstDataQueue.html"/>
+        <sub name="GstQueueArray" link="gstreamer-libs-GstQueueArray.html"/>
       </sub>
       <sub name="GStreamer Dynamic Parameter Control" link="gstreamer-control.html">
         <sub name="GstARGBControlBinding" link="gstreamer-libs-GstARGBControlBinding.html"/>
@@ -33,6 +35,7 @@
         <sub name="GstCheck" link="gstreamer-libs-GstCheck.html"/>
         <sub name="GstBufferStraw" link="gstreamer-libs-GstBufferStraw.html"/>
         <sub name="GstStreamConsistency" link="gstreamer-libs-GstStreamConsistency.html"/>
+        <sub name="GstTestClock" link="GstTestClock.html"/>
       </sub>
     </sub>
     <sub name="Object Hierarchy" link="gstreamer-hierarchy.html"/>
@@ -67,7 +70,7 @@
     <keyword type="macro" name="GST_BASE_PARSE_LOST_SYNC()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS"/>
     <keyword type="macro" name="GST_BASE_PARSE_SINK_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS"/>
     <keyword type="macro" name="GST_BASE_PARSE_SRC_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS"/>
-    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp8146128"/>
+    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp6538368"/>
     <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"/>
@@ -127,14 +130,15 @@
     <keyword type="property" name="The &quot;blocksize&quot; property" link="GstBaseSink.html#GstBaseSink--blocksize"/>
     <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-bitrate&quot; property" link="GstBaseSink.html#GstBaseSink--max-bitrate"/>
     <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#idp8789696"/>
-    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp5740896"/>
+    <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp6953552"/>
+    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp5222304"/>
     <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"/>
@@ -429,6 +433,32 @@
     <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="struct" name="struct GstDataQueue" link="gstreamer-libs-GstDataQueue.html#GstDataQueue"/>
+    <keyword type="struct" name="struct GstDataQueueSize" link="gstreamer-libs-GstDataQueue.html#GstDataQueueSize"/>
+    <keyword type="function" name="GstDataQueueCheckFullFunction ()" link="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction"/>
+    <keyword type="struct" name="struct GstDataQueueItem" link="gstreamer-libs-GstDataQueue.html#GstDataQueueItem"/>
+    <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" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_push ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_pop ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-pop" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_flush ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-flush" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_set_flushing ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-set-flushing" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_drop_head ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-drop-head" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_is_full ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-full" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_is_empty ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-empty" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_get_level ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-get-level" since="1.2.0"/>
+    <keyword type="function" name="gst_data_queue_limits_changed ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-limits-changed" since="1.2.0"/>
+    <keyword type="struct" name="GstQueueArray" link="gstreamer-libs-GstQueueArray.html#GstQueueArray"/>
+    <keyword type="function" name="gst_queue_array_new ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-new" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_free ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-free" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_get_length ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-get-length" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_pop_head ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-pop-head" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_peek_head ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-peek-head"/>
+    <keyword type="function" name="gst_queue_array_push_tail ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-push-tail" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_is_empty ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-is-empty" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_drop_element ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-drop-element" since="1.2.0"/>
+    <keyword type="function" name="gst_queue_array_find ()" link="gstreamer-libs-GstQueueArray.html#gst-queue-array-find" since="1.2.0"/>
     <keyword type="function" name="gst_argb_control_binding_new ()" link="gstreamer-libs-GstARGBControlBinding.html#gst-argb-control-binding-new"/>
     <keyword type="function" name="gst_direct_control_binding_new ()" link="gstreamer-libs-GstDirectControlBinding.html#gst-direct-control-binding-new"/>
     <keyword type="struct" name="struct GstTimedValueControlSource" link="GstTimedValueControlSource.html#GstTimedValueControlSource-struct"/>
@@ -486,12 +516,20 @@
     <keyword type="macro" name="fail_unless_equals_string()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-string"/>
     <keyword type="macro" name="fail_unless_equals_uint64()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-uint64"/>
     <keyword type="macro" name="fail_unless_equals_int64()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-int64"/>
+    <keyword type="macro" name="fail_unless_equals_int_hex()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-int-hex" since="1.2"/>
+    <keyword type="macro" name="fail_unless_equals_int64_hex()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-int64-hex" since="1.2"/>
+    <keyword type="macro" name="fail_unless_equals_uint64_hex()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-uint64-hex" since="1.2"/>
+    <keyword type="macro" name="fail_unless_equals_pointer()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-pointer" since="1.2"/>
     <keyword type="macro" name="fail_unless_message_error()" link="gstreamer-libs-GstCheck.html#fail-unless-message-error"/>
     <keyword type="macro" name="assert_equals_int()" link="gstreamer-libs-GstCheck.html#assert-equals-int"/>
     <keyword type="macro" name="assert_equals_float()" link="gstreamer-libs-GstCheck.html#assert-equals-float"/>
     <keyword type="macro" name="assert_equals_string()" link="gstreamer-libs-GstCheck.html#assert-equals-string"/>
     <keyword type="macro" name="assert_equals_uint64()" link="gstreamer-libs-GstCheck.html#assert-equals-uint64"/>
     <keyword type="macro" name="assert_equals_int64()" link="gstreamer-libs-GstCheck.html#assert-equals-int64"/>
+    <keyword type="macro" name="assert_equals_int_hex()" link="gstreamer-libs-GstCheck.html#assert-equals-int-hex" since="1.2"/>
+    <keyword type="macro" name="assert_equals_int64_hex()" link="gstreamer-libs-GstCheck.html#assert-equals-int64-hex" since="1.2"/>
+    <keyword type="macro" name="assert_equals_uint64_hex()" link="gstreamer-libs-GstCheck.html#assert-equals-uint64-hex" since="1.2"/>
+    <keyword type="macro" name="assert_equals_pointer()" link="gstreamer-libs-GstCheck.html#assert-equals-pointer" since="1.2"/>
     <keyword type="macro" name="assert_message_error()" link="gstreamer-libs-GstCheck.html#assert-message-error"/>
     <keyword type="function" name="gst_check_init ()" link="gstreamer-libs-GstCheck.html#gst-check-init"/>
     <keyword type="function" name="gst_check_message_error ()" link="gstreamer-libs-GstCheck.html#gst-check-message-error"/>
@@ -510,6 +548,8 @@
     <keyword type="function" name="gst_check_element_push_buffer_list ()" link="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list"/>
     <keyword type="function" name="gst_check_element_push_buffer ()" link="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer"/>
     <keyword type="function" name="gst_check_run_suite ()" link="gstreamer-libs-GstCheck.html#gst-check-run-suite"/>
+    <keyword type="function" name="gst_check_setup_events ()" link="gstreamer-libs-GstCheck.html#gst-check-setup-events"/>
+    <keyword type="function" name="gst_check_setup_events_with_stream_id ()" link="gstreamer-libs-GstCheck.html#gst-check-setup-events-with-stream-id"/>
     <keyword type="function" name="gst_buffer_straw_start_pipeline ()" link="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline"/>
     <keyword type="function" name="gst_buffer_straw_get_buffer ()" link="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer"/>
     <keyword type="function" name="gst_buffer_straw_stop_pipeline ()" link="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline"/>
@@ -517,6 +557,20 @@
     <keyword type="function" name="gst_consistency_checker_new ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new"/>
     <keyword type="function" name="gst_consistency_checker_reset ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset"/>
     <keyword type="function" name="gst_consistency_checker_free ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free"/>
+    <keyword type="struct" name="struct GstTestClock" link="GstTestClock.html#GstTestClock-struct"/>
+    <keyword type="struct" name="struct GstTestClockClass" link="GstTestClock.html#GstTestClockClass" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_new ()" link="GstTestClock.html#gst-test-clock-new" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_new_with_start_time ()" link="GstTestClock.html#gst-test-clock-new-with-start-time" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_set_time ()" link="GstTestClock.html#gst-test-clock-set-time" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_advance_time ()" link="GstTestClock.html#gst-test-clock-advance-time" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_peek_id_count ()" link="GstTestClock.html#gst-test-clock-peek-id-count" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_has_id ()" link="GstTestClock.html#gst-test-clock-has-id" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_peek_next_pending_id ()" link="GstTestClock.html#gst-test-clock-peek-next-pending-id" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_wait_for_next_pending_id ()" link="GstTestClock.html#gst-test-clock-wait-for-next-pending-id" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_wait_for_pending_id_count ()" link="GstTestClock.html#gst-test-clock-wait-for-pending-id-count" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_process_next_clock_id ()" link="GstTestClock.html#gst-test-clock-process-next-clock-id" since="1.2"/>
+    <keyword type="function" name="gst_test_clock_get_next_entry_time ()" link="GstTestClock.html#gst-test-clock-get-next-entry-time" since="1.2"/>
+    <keyword type="property" name="The &quot;start-time&quot; property" link="GstTestClock.html#GstTestClock--start-time"/>
     <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"/>
diff --git a/docs/libs/html/gstreamer-libs-GstARGBControlBinding.html b/docs/libs/html/gstreamer-libs-GstARGBControlBinding.html
index beb4720..767b86c 100644
--- a/docs/libs/html/gstreamer-libs-GstARGBControlBinding.html
+++ b/docs/libs/html/gstreamer-libs-GstARGBControlBinding.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstARGBControlBinding</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -70,8 +70,11 @@
 Create a new control-binding that attaches the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a> to the
 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstBaseParse.html b/docs/libs/html/gstreamer-libs-GstBaseParse.html
index ad6f454..f41f4d9 100644
--- a/docs/libs/html/gstreamer-libs-GstBaseParse.html
+++ b/docs/libs/html/gstreamer-libs-GstBaseParse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseParse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -104,7 +104,7 @@
 <p>
 It provides for:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>provides one sink pad and one source pad</p></li>
 <li class="listitem"><p>handles state changes</p></li>
 <li class="listitem"><p>can operate in pull mode or push mode</p></li>
@@ -127,7 +127,7 @@
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Set-up phase</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     GstBaseParse calls <em class="parameter"><code>start</code></em> to inform subclass that data processing is
     about to start now.
@@ -151,7 +151,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Parsing phase</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
       GstBaseParse gathers at least min_frame_size bytes of data either
       by pulling it from upstream or collecting buffers in an internal
@@ -209,7 +209,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
     GstBaseParse class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
     parsing will be stopped.
   </p></li></ul>
@@ -240,7 +240,7 @@
 <p>
 Things that subclass need to take care of:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Provide pad templates</p></li>
 <li class="listitem"><p>
      Fixate the source pad caps when appropriate
@@ -292,8 +292,11 @@
 <p>
 The opaque <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> data structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -339,6 +342,12 @@
 
   GstFlowReturn (*detect)             (GstBaseParse * parse,
                                        GstBuffer    * buffer);
+
+  gboolean      (*sink_query)         (GstBaseParse * parse,
+                                       GstQuery     * query);
+
+  gboolean      (*src_query)          (GstBaseParse * parse,
+                                       GstQuery     * query);
 };
 </pre>
 <p>
@@ -346,8 +355,11 @@
 needed. At minimum <em class="parameter"><code>check_valid_frame</code></em> and <em class="parameter"><code>parse_frame</code></em> needs to be
 overridden.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -420,6 +432,19 @@
 the first buffers. Can be used by the subclass to detect
 the stream format.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.sink-query"></a>sink_query</code></em> ()</span></p></td>
+<td>Optional.
+Query handler on the sink pad. This function should chain
+up to the parent implementation to let the default handler
+run (Since 1.2)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.src-query"></a>src_query</code></em> ()</span></p></td>
+<td>Optional.
+Query handler on the source pad. Should chain up to the
+parent to let the default handler run (Since 1.2)</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -437,8 +462,11 @@
 duration is determined based on estimated bitrate, and updated every <em class="parameter"><code>interval</code></em>
 frames.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -476,8 +504,11 @@
 a seek position, if there's no index and the format is syncable
 (see <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-syncable" title="gst_base_parse_set_syncable ()"><code class="function">gst_base_parse_set_syncable()</code></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -500,8 +531,11 @@
 Subclass can use this function to tell the base class that it needs to
 give at least <span class="type">min_size</span> buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -530,8 +564,11 @@
 so subclass can perform as much or as little is appropriate for
 passthrough semantics in <em class="parameter"><code>pre_push_frame</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -556,8 +593,11 @@
 determines whether seeking based on bitrate averages
 is possible for a format/stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -581,8 +621,11 @@
 parse and provide.  In particular, intrinsic (rather than estimated) time
 can be obtained following a seek.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -611,8 +654,11 @@
 following <em class="parameter"><code>lead_out</code></em> number of frames to ensure the desired segment is
 entirely filled upon decoding.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -648,8 +694,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -678,8 +727,11 @@
 <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>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -725,8 +777,11 @@
 whether the stream is (upstream) seekable, another entry is already "close"
 to the new entry, etc.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -777,8 +832,11 @@
 only to some a particular one.  These parameters are effectively zeroed at start
 of each frame's processing, i.e. parsing virtual method invocation sequence.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -824,8 +882,11 @@
 <p>
 Flags to be used in a <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_NONE</code></span></p></td>
@@ -882,8 +943,11 @@
 elements written in C should usually allocate the frame on the stack and
 then use <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> to initialise it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -919,8 +983,11 @@
 the actual frame. Use this function to initialise a <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>
 allocated on the stack.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>
@@ -946,8 +1013,11 @@
 <p>
 This must be called with sinkpad STREAM_LOCK held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -987,8 +1057,11 @@
 Note that the latter buffer is invalidated by this call, whereas the
 caller retains ownership of <em class="parameter"><code>frame</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
@@ -1020,8 +1093,11 @@
 Obtains current drain status (ie. whether EOS has been received and
 the parser is now processing the frames at the end of the stream)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
 <td>base parse instance</td>
@@ -1059,8 +1135,11 @@
 <p>
 Obtains current sync status.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>parse</code></em> :</span></p></td>
 <td>base parse instance</td>
@@ -1075,8 +1154,11 @@
 <p>
 Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base parse instance</td>
@@ -1091,8 +1173,11 @@
 <p>
 Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base parse instance</td>
diff --git a/docs/libs/html/gstreamer-libs-GstBitReader.html b/docs/libs/html/gstreamer-libs-GstBitReader.html
index d6e7c01..54669a7 100644
--- a/docs/libs/html/gstreamer-libs-GstBitReader.html
+++ b/docs/libs/html/gstreamer-libs-GstBitReader.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBitReader</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -134,8 +134,11 @@
 <p>
 A bit reader instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <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>
@@ -169,8 +172,11 @@
 be assigned to a variable. In that case you have to use
 <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-init" title="gst_bit_reader_init ()"><code class="function">gst_bit_reader_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -194,8 +200,11 @@
 <p>
 Free-function: gst_bit_reader_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -223,8 +232,11 @@
 Frees a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance, which was previously allocated by
 <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-new" title="gst_bit_reader_new ()"><code class="function">gst_bit_reader_new()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance. <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>
@@ -242,8 +254,11 @@
 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
 can be called on already initialized instances.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -268,8 +283,11 @@
 <p>
 Returns the current position of a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance in bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -289,8 +307,11 @@
 <p>
 Returns the remaining number of bits of a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -311,8 +332,11 @@
 <p>
 Sets the new position of a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance to <em class="parameter"><code>pos</code></em> in bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -338,8 +362,11 @@
 <p>
 Returns the total number of bits of a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -360,8 +387,11 @@
 <p>
 Skips <em class="parameter"><code>nbits</code></em> bits of the <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -386,8 +416,11 @@
 <p>
 Skips until the next byte.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -410,8 +443,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -443,8 +479,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -476,8 +515,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -509,8 +551,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -542,8 +587,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -575,8 +623,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -608,8 +659,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -641,8 +695,11 @@
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -674,8 +731,11 @@
 Skips <em class="parameter"><code>nbits</code></em> bits of the <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance without checking if there
 are enough bits available in the bit reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -697,8 +757,11 @@
 Skips until the next byte without checking if there are enough bits
 available in the bit reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance</td>
@@ -715,8 +778,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position without
 checking if there are enough bits available in the bit reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -743,8 +809,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position without
 checking if there are enough bits available in the bit reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -771,8 +840,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position without
 checking if there are enough bits available in the bit reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -799,8 +871,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position without
 checking if there are enough bits available in the bit reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -827,8 +902,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position without
 checking if there are enough bits available in the bit reader
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -840,7 +918,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>unsigned 64 bit integer with the bits.</td>
+<td>unsigned 16 bit integer with the bits.</td>
 </tr>
 </tbody>
 </table></div>
@@ -855,8 +933,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position without
 checking if there are enough bits available in the bit reader
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -879,6 +960,30 @@
 <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>
+<p>
+Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position without
+checking if there are enough bits available in the bit reader
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nbits</code></em> :</span></p></td>
+<td>number of bits to read</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>unsigned 64 bit integer with the bits.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -890,8 +995,11 @@
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position without
 checking if there are enough bits available in the bit reader
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstBufferStraw.html b/docs/libs/html/gstreamer-libs-GstBufferStraw.html
index ae88b32..ef96ffe 100644
--- a/docs/libs/html/gstreamer-libs-GstBufferStraw.html
+++ b/docs/libs/html/gstreamer-libs-GstBufferStraw.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBufferStraw</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -81,8 +81,11 @@
 is intended for unit tests, not general API use. In fact it calls fail_if
 from libcheck, so you cannot use it outside unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -111,8 +114,11 @@
 You must have previously called <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> on
 <em class="parameter"><code>pipeline</code></em> and <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -144,8 +150,11 @@
 You must have previously called <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> on
 <em class="parameter"><code>pipeline</code></em> and <em class="parameter"><code>pad</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstByteReader.html b/docs/libs/html/gstreamer-libs-GstByteReader.html
index c04fe48..902c08a 100644
--- a/docs/libs/html/gstreamer-libs-GstByteReader.html
+++ b/docs/libs/html/gstreamer-libs-GstByteReader.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstByteReader</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -298,8 +298,11 @@
 <p>
 A byte reader instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <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>
@@ -329,8 +332,11 @@
 be assigned to a variable. In that case you have to use
 <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-init" title="gst_byte_reader_init ()"><code class="function">gst_byte_reader_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -354,8 +360,11 @@
 <p>
 Free-function: gst_byte_reader_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -383,8 +392,11 @@
 Frees a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance, which was previously allocated by
 <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-new" title="gst_byte_reader_new ()"><code class="function">gst_byte_reader_new()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance. <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>
@@ -402,8 +414,11 @@
 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
 can be called on already initialized instances.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -429,8 +444,11 @@
 <p>
 Returns the current position of a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance in bytes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -450,8 +468,11 @@
 <p>
 Returns the remaining number of bytes of a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -472,8 +493,11 @@
 <p>
 Sets the new position of a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance to <em class="parameter"><code>pos</code></em> in bytes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -499,8 +523,11 @@
 <p>
 Returns the total number of bytes of a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -521,8 +548,11 @@
 <p>
 Skips <em class="parameter"><code>nbytes</code></em> bytes of the <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -548,8 +578,11 @@
 <p>
 Read a signed 8 bit integer into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -577,8 +610,11 @@
 Read a signed 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -606,8 +642,11 @@
 Read a signed 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -635,8 +674,11 @@
 Read a signed 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -664,8 +706,11 @@
 Read a signed 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -693,8 +738,11 @@
 Read a signed 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -722,8 +770,11 @@
 Read a signed 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -751,8 +802,11 @@
 Read a signed 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -780,8 +834,11 @@
 Read a signed 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -808,8 +865,11 @@
 <p>
 Read an unsigned 8 bit integer into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -837,8 +897,11 @@
 Read an unsigned 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -866,8 +929,11 @@
 Read an unsigned 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -895,8 +961,11 @@
 Read an unsigned 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -924,8 +993,11 @@
 Read an unsigned 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -953,8 +1025,11 @@
 Read an unsigned 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -982,8 +1057,11 @@
 Read an unsigned 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1011,8 +1089,11 @@
 Read an unsigned 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1040,8 +1121,11 @@
 Read an unsigned 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1068,8 +1152,11 @@
 <p>
 Read a signed 8 bit integer into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1097,8 +1184,11 @@
 Read a signed 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1126,8 +1216,11 @@
 Read a signed 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1155,8 +1248,11 @@
 Read a signed 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1184,8 +1280,11 @@
 Read a signed 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1213,8 +1312,11 @@
 Read a signed 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1242,8 +1344,11 @@
 Read a signed 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1271,8 +1376,11 @@
 Read a signed 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1300,8 +1408,11 @@
 Read a signed 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1328,8 +1439,11 @@
 <p>
 Read an unsigned 8 bit integer into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1357,8 +1471,11 @@
 Read an unsigned 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1386,8 +1503,11 @@
 Read an unsigned 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1415,8 +1535,11 @@
 Read an unsigned 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1444,8 +1567,11 @@
 Read an unsigned 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1473,8 +1599,11 @@
 Read an unsigned 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1502,8 +1631,11 @@
 Read an unsigned 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1531,8 +1663,11 @@
 Read an unsigned 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1560,8 +1695,11 @@
 Read an unsigned 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1589,8 +1727,11 @@
 Read a 32 bit little endian floating point value into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1618,8 +1759,11 @@
 Read a 32 bit big endian floating point value into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1647,8 +1791,11 @@
 Read a 64 bit little endian floating point value into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1676,8 +1823,11 @@
 Read a 64 bit big endian floating point value into <em class="parameter"><code>val</code></em>
 and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1705,8 +1855,11 @@
 Read a 32 bit little endian floating point value into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1734,8 +1887,11 @@
 Read a 32 bit big endian floating point value into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1763,8 +1919,11 @@
 Read a 64 bit little endian floating point value into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1792,8 +1951,11 @@
 Read a 64 bit big endian floating point value into <em class="parameter"><code>val</code></em>
 but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1823,8 +1985,11 @@
 position if at least <em class="parameter"><code>size</code></em> bytes are left and
 updates the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1862,8 +2027,11 @@
 position if at least <em class="parameter"><code>size</code></em> bytes are left and
 updates the current position. 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 no longer needed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1898,8 +2066,11 @@
 position if at least <em class="parameter"><code>size</code></em> bytes are left and
 keeps the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -1945,8 +2116,11 @@
 It is an error to call this function without making sure that there is
 enough data (offset+size bytes) in the byte reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2020,8 +2194,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2055,8 +2232,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2094,8 +2274,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2137,8 +2320,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2184,8 +2370,11 @@
 Note: there is no peek or get variant of this function to ensure correct
 byte alignment of the UTF-16 string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2231,8 +2420,11 @@
 Note: there is no peek or get variant of this function to ensure correct
 byte alignment of the UTF-32 string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2266,8 +2458,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2294,8 +2489,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2323,8 +2521,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2352,8 +2553,11 @@
 <p>
 This function will fail if no NUL-terminator was found in in the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2376,8 +2580,11 @@
 Skips <em class="parameter"><code>nbytes</code></em> bytes of the <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance without checking if
 there are enough bytes available in the byte reader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2398,8 +2605,11 @@
 Read an signed 8 bit integer without checking if there are enough bytes
 available in the byte reader and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2422,8 +2632,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2446,8 +2659,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2470,8 +2686,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2494,8 +2713,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2518,8 +2740,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2542,8 +2767,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2566,8 +2794,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2590,8 +2821,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2612,8 +2846,11 @@
 Read an unsigned 8 bit integer without checking if there are enough bytes
 available in the byte reader and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2636,8 +2873,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2660,8 +2900,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2684,8 +2927,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2708,8 +2954,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2732,8 +2981,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2756,8 +3008,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2780,8 +3035,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2804,8 +3062,11 @@
 if there are enough bytes available in the byte reader and update the
 current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2826,8 +3087,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2850,8 +3114,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2874,8 +3141,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2898,8 +3168,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2922,8 +3195,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2946,8 +3222,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2970,8 +3249,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -2994,8 +3276,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3018,8 +3303,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3041,8 +3329,11 @@
 Read an unsigned 8 bit integer without checking if there are enough bytes
 available in the byte reader, but do not advance the current read position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3065,8 +3356,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3089,8 +3383,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3113,8 +3410,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3137,8 +3437,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3161,8 +3464,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3185,8 +3491,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3209,8 +3518,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3233,8 +3545,11 @@
 if there are enough bytes available in the byte reader, but do not advance
 the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3256,8 +3571,11 @@
 Read a 32 bit little endian float without checking if there is enough
 data available and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3279,8 +3597,11 @@
 Read a 32 bit big endian float without checking if there is enough
 data available and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3302,8 +3623,11 @@
 Read a 64 bit little endian float without checking if there is enough
 data available and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3325,8 +3649,11 @@
 Read a 64 bit big endian float without checking if there is enough
 data available and update the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3348,8 +3675,11 @@
 Read a 32 bit little endian float without checking if there is enough
 data available, but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3371,8 +3701,11 @@
 Read a 32 bit big endian float without checking if there is enough
 data available, but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3394,8 +3727,11 @@
 Read a 64 bit little endian float without checking if there is enough
 data available, but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3417,8 +3753,11 @@
 Read a 64 bit big endian float without checking if there is enough
 data available, but keep the current position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3444,8 +3783,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3474,8 +3816,11 @@
 if at least <em class="parameter"><code>size</code></em> bytes are left. Advances the current read position by
 <em class="parameter"><code>size</code></em> bytes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
@@ -3498,8 +3843,11 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-data-unchecked"></a><h3>gst_byte_reader_peek_data_unchecked ()</h3>
 <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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstByteWriter.html b/docs/libs/html/gstreamer-libs-GstByteWriter.html
index 5bb39f6..55b301e 100644
--- a/docs/libs/html/gstreamer-libs-GstByteWriter.html
+++ b/docs/libs/html/gstreamer-libs-GstByteWriter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstByteWriter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -227,8 +227,11 @@
 <p>
 A byte writer instance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> <em class="structfield"><code><a name="GstByteWriter.parent"></a>parent</code></em>;</span></p></td>
@@ -260,8 +263,11 @@
 <p>
 Free-function: gst_byte_writer_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new, empty <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> instance. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -283,8 +289,11 @@
 <p>
 Free-function: gst_byte_writer_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -318,8 +327,11 @@
 <p>
 Free-function: gst_byte_writer_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
@@ -344,8 +356,11 @@
 <p>
 Initializes <em class="parameter"><code>writer</code></em> to an empty instance
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
 <td>
@@ -365,8 +380,11 @@
 memory area. If <em class="parameter"><code>initialized</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it is possible to
 read <em class="parameter"><code>size</code></em> bytes from the <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> from the beginning.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -398,8 +416,11 @@
 <p>
 Initializes <em class="parameter"><code>writer</code></em> with the given initial data size.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -424,8 +445,11 @@
 <p>
 Frees <em class="parameter"><code>writer</code></em> and all memory allocated by it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
 <td>
@@ -445,8 +469,11 @@
 <p>
 Free-function: gst_buffer_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -474,8 +501,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -499,8 +529,11 @@
 Resets <em class="parameter"><code>writer</code></em> and frees the data if it's
 owned by <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
 <td>
@@ -518,8 +551,11 @@
 <p>
 Free-function: g_free
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -546,8 +582,11 @@
 <p>
 Free-function: gst_buffer_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -567,8 +606,11 @@
 <div class="refsect2">
 <a name="gst-byte-writer-get-pos"></a><h3>gst_byte_writer_get_pos ()</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_writer_get_pos             (<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>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -591,8 +633,11 @@
 Sets the current read/write cursor of <em class="parameter"><code>writer</code></em>. The new position
 can only be between 0 and the current size.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -619,8 +664,11 @@
 Returns the remaining size of data that can still be written. If
 -1 is returned the remaining size is only limited by system resources.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -638,8 +686,11 @@
 <div class="refsect2">
 <a name="gst-byte-writer-get-size"></a><h3>gst_byte_writer_get_size ()</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_writer_get_size            (<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>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -662,8 +713,11 @@
 Checks if enough free space from the current write cursor is
 available and reallocates if necessary.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -690,8 +744,11 @@
 <p>
 Writes a signed 8 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -718,8 +775,11 @@
 <p>
 Writes a signed big endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -746,8 +806,11 @@
 <p>
 Writes a signed little endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -774,8 +837,11 @@
 <p>
 Writes a signed big endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -802,8 +868,11 @@
 <p>
 Writes a signed little endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -830,8 +899,11 @@
 <p>
 Writes a signed big endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -858,8 +930,11 @@
 <p>
 Writes a signed little endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -886,8 +961,11 @@
 <p>
 Writes a signed big endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -914,8 +992,11 @@
 <p>
 Writes a signed little endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -942,8 +1023,11 @@
 <p>
 Writes a unsigned 8 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -970,8 +1054,11 @@
 <p>
 Writes a unsigned big endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -998,8 +1085,11 @@
 <p>
 Writes a unsigned little endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1026,8 +1116,11 @@
 <p>
 Writes a unsigned big endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1054,8 +1147,11 @@
 <p>
 Writes a unsigned little endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1082,8 +1178,11 @@
 <p>
 Writes a unsigned big endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1110,8 +1209,11 @@
 <p>
 Writes a unsigned little endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1138,8 +1240,11 @@
 <p>
 Writes a unsigned big endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1166,8 +1271,11 @@
 <p>
 Writes a unsigned little endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1194,8 +1302,11 @@
 <p>
 Writes a big endian 32 bit float to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1222,8 +1333,11 @@
 <p>
 Writes a little endian 32 bit float to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1250,8 +1364,11 @@
 <p>
 Writes a big endian 64 bit float to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1278,8 +1395,11 @@
 <p>
 Writes a little endian 64 bit float to <em class="parameter"><code>writer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1307,8 +1427,11 @@
 string is assumed to be in an 8-bit encoding (e.g. ASCII,UTF-8 or
 ISO-8859-1).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1336,8 +1459,11 @@
 <p>
 Writes a NUL-terminated UTF16 string to <em class="parameter"><code>writer</code></em> (including the terminator).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1365,8 +1491,11 @@
 <p>
 Writes a NUL-terminated UTF32 string to <em class="parameter"><code>writer</code></em> (including the terminator).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1394,8 +1523,11 @@
 <p>
 Writes a NUL-terminated UTF8 string to <em class="parameter"><code>writer</code></em> (including the terminator).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1425,8 +1557,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1459,8 +1594,11 @@
 <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>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1499,8 +1637,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1524,8 +1665,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1549,8 +1693,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1574,8 +1721,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1599,8 +1749,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1624,8 +1777,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1649,8 +1805,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1674,8 +1833,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1698,8 +1860,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1723,8 +1888,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1748,8 +1916,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1773,8 +1944,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1798,8 +1972,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1823,8 +2000,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1848,8 +2028,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1873,8 +2056,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1898,8 +2084,11 @@
 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.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1923,8 +2112,11 @@
 Writes a big endian 32 bit float to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1948,8 +2140,11 @@
 Writes a little endian 32 bit float to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1973,8 +2168,11 @@
 Writes a big endian 64 bit float to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -1998,8 +2196,11 @@
 Writes a little endian 64 bit float to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -2023,8 +2224,11 @@
 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
 checking if there is enough free space available in the byte writer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
@@ -2053,8 +2257,11 @@
 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
 checking if there is enough free space available in the byte writer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstCheck.html b/docs/libs/html/gstreamer-libs-GstCheck.html
index 31b36ab..f397c83 100644
--- a/docs/libs/html/gstreamer-libs-GstCheck.html
+++ b/docs/libs/html/gstreamer-libs-GstCheck.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstCheck</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -73,6 +73,14 @@
                                                          b)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-int64" title="fail_unless_equals_int64()">fail_unless_equals_int64</a>            (a,
                                                          b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-int-hex" title="fail_unless_equals_int_hex()">fail_unless_equals_int_hex</a>          (a,
+                                                         b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-int64-hex" title="fail_unless_equals_int64_hex()">fail_unless_equals_int64_hex</a>        (a,
+                                                         b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-uint64-hex" title="fail_unless_equals_uint64_hex()">fail_unless_equals_uint64_hex</a>       (a,
+                                                         b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-equals-pointer" title="fail_unless_equals_pointer()">fail_unless_equals_pointer</a>          (a,
+                                                         b)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#fail-unless-message-error" title="fail_unless_message_error()">fail_unless_message_error</a>           (msg,
                                                          domain,
                                                          code)
@@ -86,6 +94,14 @@
                                                          b)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-int64" title="assert_equals_int64()">assert_equals_int64</a>                 (a,
                                                          b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-int-hex" title="assert_equals_int_hex()">assert_equals_int_hex</a>               (a,
+                                                         b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-int64-hex" title="assert_equals_int64_hex()">assert_equals_int64_hex</a>             (a,
+                                                         b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-uint64-hex" title="assert_equals_uint64_hex()">assert_equals_uint64_hex</a>            (a,
+                                                         b)
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#assert-equals-pointer" title="assert_equals_pointer()">assert_equals_pointer</a>               (a,
+                                                         b)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#assert-message-error" title="assert_message_error()">assert_message_error</a>                (m,
                                                          d,
                                                          c)
@@ -131,6 +147,16 @@
 <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>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-events" title="gst_check_setup_events ()">gst_check_setup_events</a>              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *srcpad</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-events-with-stream-id" title="gst_check_setup_events_with_stream_id ()">gst_check_setup_events_with_stream_id</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *srcpad</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -148,8 +174,11 @@
 <p>
 wrapper for checks START_TEST
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>__testname</code></em> :</span></p></td>
 <td>test function name</td>
@@ -213,8 +242,11 @@
 case, printing both expressions and the values they evaluated to. This
 macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -236,8 +268,11 @@
 is not the case, printing both expressions and the values they evaluated
 to. This macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -259,8 +294,11 @@
 this is not the case, printing both expressions and the values they
 evaluated to. This macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -282,8 +320,11 @@
 case, printing both expressions and the values they evaluated to. This
 macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -305,8 +346,11 @@
 case, printing both expressions and the values they evaluated to. This
 macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -321,6 +365,114 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="fail-unless-equals-int-hex"></a><h3>fail_unless_equals_int_hex()</h3>
+<pre class="programlisting">#define             fail_unless_equals_int_hex(a, b)</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this is not the
+case, printing both expressions and the values they evaluated to in
+hexadecimal format. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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#gint"><span class="type">gint</span></a> 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#gint"><span class="type">gint</span></a> value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="fail-unless-equals-int64-hex"></a><h3>fail_unless_equals_int64_hex()</h3>
+<pre class="programlisting">#define             fail_unless_equals_int64_hex(a, b)</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this is not the
+case, printing both expressions and the values they evaluated to in
+hexadecimal format. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></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 <span class="type">gint64</span> value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="fail-unless-equals-uint64-hex"></a><h3>fail_unless_equals_uint64_hex()</h3>
+<pre class="programlisting">#define             fail_unless_equals_uint64_hex(a, b)</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this is not the
+case, printing both expressions and the values they evaluated to in
+hexadecimal format. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></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 <span class="type">gint64</span> value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="fail-unless-equals-pointer"></a><h3>fail_unless_equals_pointer()</h3>
+<pre class="programlisting">#define             fail_unless_equals_pointer(a, b)</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this
+is not the case, printing both expressions and the values they
+evaluated to. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
+<td>a pointer value or expression</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a pointer value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="fail-unless-message-error"></a><h3>fail_unless_message_error()</h3>
 <pre class="programlisting">#define             fail_unless_message_error(msg, domain, code)</pre>
 </div>
@@ -334,8 +486,11 @@
 case, printing both expressions and the values they evaluated to. This
 macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -358,8 +513,11 @@
 is not the case, printing both expressions and the values they evaluated
 to. This macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -382,8 +540,11 @@
 this is not the case, printing both expressions and the values they
 evaluated to. This macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -406,8 +567,11 @@
 case, printing both expressions and the values they evaluated to. This
 macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -430,8 +594,11 @@
 case, printing both expressions and the values they evaluated to. This
 macro is for use in unit tests.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -446,6 +613,118 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="assert-equals-int-hex"></a><h3>assert_equals_int_hex()</h3>
+<pre class="programlisting">#define assert_equals_int_hex(a, b) fail_unless_equals_int_hex(a, b)
+</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this is not the
+case, printing both expressions and the values they evaluated to in
+hexadecimal format. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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#gint"><span class="type">gint</span></a> 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#gint"><span class="type">gint</span></a> value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="assert-equals-int64-hex"></a><h3>assert_equals_int64_hex()</h3>
+<pre class="programlisting">#define assert_equals_int64_hex(a,b) fail_unless_equals_int64_hex(a,b)
+</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this is not the
+case, printing both expressions and the values they evaluated to in
+hexadecimal format. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></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 <span class="type">gint64</span> value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="assert-equals-uint64-hex"></a><h3>assert_equals_uint64_hex()</h3>
+<pre class="programlisting">#define assert_equals_uint64_hex(a,b) fail_unless_equals_uint64_hex(a,b)
+</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this is not the
+case, printing both expressions and the values they evaluated to in
+hexadecimal format. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></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 <span class="type">guint64</span> value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="assert-equals-pointer"></a><h3>assert_equals_pointer()</h3>
+<pre class="programlisting">#define assert_equals_pointer(a, b) fail_unless_equals_pointer(a, b)
+</pre>
+<p>
+This macro checks that <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> are equal and aborts if this
+is not the case, printing both expressions and the values they
+evaluated to. This macro is for use in unit tests.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
+<td>a pointer value or expression</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a pointer value or expression</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="assert-message-error"></a><h3>assert_message_error()</h3>
 <pre class="programlisting">#define assert_message_error(m, d, c) fail_unless_message_error(m, d, c)
 </pre>
@@ -471,8 +750,11 @@
 <p>
 setup an element for a filter test with mysrcpad and mysinkpad
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
@@ -491,8 +773,11 @@
 <a name="gst-check-setup-sink-pad"></a><h3>gst_check_setup_sink_pad ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -515,8 +800,11 @@
 <a name="gst-check-setup-src-pad"></a><h3>gst_check_setup_src_pad ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -540,8 +828,11 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad_by_name    (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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 class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -569,8 +860,11 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad_by_name     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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 class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -631,8 +925,11 @@
 <p>
 Compare the buffer contents with <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -658,8 +955,11 @@
 Compare two caps with gst_caps_is_equal and fail unless they are
 equal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
@@ -691,8 +991,11 @@
 This can be used to set up a test which pushes some buffers and then an
 invalid buffer, when the final buffer is expected to fail, for example.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element_name</code></em> :</span></p></td>
@@ -731,8 +1034,11 @@
 and this will be compared with <em class="parameter"><code>buffer_out</code></em>. We only check the caps
 and the data of the buffers. This function unrefs the buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element_name</code></em> :</span></p></td>
@@ -756,6 +1062,91 @@
                                                          <em 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>);</pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-check-setup-events"></a><h3>gst_check_setup_events ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_setup_events              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *srcpad</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);</pre>
+<p>
+Push stream-start, caps and segment event, which concist of the minimum
+required events to allow streaming. Caps is optional to allow raw src
+testing. If <em class="parameter"><code>element</code></em> has more than one src or sink pad, use
+<a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-events-with-stream-id" title="gst_check_setup_events_with_stream_id ()"><code class="function">gst_check_setup_events_with_stream_id()</code></a> instead.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>srcpad</code></em> :</span></p></td>
+<td>The src <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> to push on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> use to create the stream id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> in case caps event must be sent. <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"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> of the default segment to send</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-check-setup-events-with-stream-id"></a><h3>gst_check_setup_events_with_stream_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_setup_events_with_stream_id
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *srcpad</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);</pre>
+<p>
+Push stream-start, caps and segment event, which concist of the minimum
+required events to allow streaming. Caps is optional to allow raw src
+testing.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>srcpad</code></em> :</span></p></td>
+<td>The src <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> to push on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> use to create the stream id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> in case caps event must be sent. <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"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> of the default segment to send</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_id</code></em> :</span></p></td>
+<td>A unique identifier for the stream</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gstreamer-libs-GstDataQueue.html b/docs/libs/html/gstreamer-libs-GstDataQueue.html
new file mode 100644
index 0000000..3eee495
--- /dev/null
+++ b/docs/libs/html/gstreamer-libs-GstDataQueue.html
@@ -0,0 +1,556 @@
+<!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.78.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-GstTypeFindHelper.html" title="GstTypeFindHelper">
+<link rel="next" href="gstreamer-libs-GstQueueArray.html" title="GstQueueArray">
+<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 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-libs-GstQueueArray.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><span class="type">guint64</span> 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 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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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"><span class="type">guint64</span> <em class="structfield"><code><a name="GstDataQueueSize.time"></a>time</code></em>;</span></p></td>
+<td>amount of time</td>
+</tr>
+</tbody>
+</table></div>
+</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><span class="type">guint64</span> 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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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>
+</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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"><span class="type">guint64</span> <em class="structfield"><code><a name="GstDataQueueItem.duration"></a>duration</code></em>;</span></p></td>
+<td>the duration in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> of the miniobject. Can not be
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
+</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 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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-push"><code class="function">gst_pad_push()</code></a>
+and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.0</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" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<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 1.2.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/gstreamer-libs-GstDirectControlBinding.html b/docs/libs/html/gstreamer-libs-GstDirectControlBinding.html
index 923ef7c..c600fd5 100644
--- a/docs/libs/html/gstreamer-libs-GstDirectControlBinding.html
+++ b/docs/libs/html/gstreamer-libs-GstDirectControlBinding.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstDirectControlBinding</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-libs-GstARGBControlBinding.html" title="GstARGBControlBinding">
@@ -49,7 +49,8 @@
 <a name="gstreamer-libs-GstDirectControlBinding.description"></a><h2>Description</h2>
 <p>
 A value mapping object that attaches control sources to gobject properties. It
-will map the control values [0.0 ... 1.0] to the target property range.
+will map the control values [0.0 ... 1.0] to the target property range. If a
+control value is outside of the range, it will be clipped.
 </p>
 </div>
 <div class="refsect1">
@@ -63,8 +64,11 @@
 Create a new control-binding that attaches the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a> to the
 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstNetTimePacket.html b/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
index b4d3d36..ef7a465 100644
--- a/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
+++ b/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstNetTimePacket</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -76,8 +76,11 @@
 <p>
 Content of a <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
@@ -115,8 +118,11 @@
 <p>
 MT safe. Caller owns return value (gst_net_time_packet_free to free).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -140,8 +146,11 @@
 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">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
@@ -178,8 +187,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -217,8 +229,11 @@
 <p>
 MT safe. Caller owns return value (g_free to free).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs-GstQueueArray.html b/docs/libs/html/gstreamer-libs-GstQueueArray.html
new file mode 100644
index 0000000..02ff96b
--- /dev/null
+++ b/docs/libs/html/gstreamer-libs-GstQueueArray.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstQueueArray</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-GstDataQueue.html" title="GstDataQueue">
+<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-GstDataQueue.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-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-GstQueueArray.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gstreamer-libs-GstQueueArray.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gstreamer-libs-GstQueueArray"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-libs-GstQueueArray.top_of_page"></a>GstQueueArray</span></h2>
+<p>GstQueueArray — Array based queue object</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gstreamer-libs-GstQueueArray.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/base/gstqueuearray.h&gt;
+
+                    <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray">GstQueueArray</a>;
+<a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="returnvalue">GstQueueArray</span></a> *     <a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-new" title="gst_queue_array_new ()">gst_queue_array_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> initial_size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-free" title="gst_queue_array_free ()">gst_queue_array_free</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</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-GstQueueArray.html#gst-queue-array-get-length" title="gst_queue_array_get_length ()">gst_queue_array_get_length</a>          (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</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-libs-GstQueueArray.html#gst-queue-array-pop-head" title="gst_queue_array_pop_head ()">gst_queue_array_pop_head</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</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-libs-GstQueueArray.html#gst-queue-array-peek-head" title="gst_queue_array_peek_head ()">gst_queue_array_peek_head</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-push-tail" title="gst_queue_array_push_tail ()">gst_queue_array_push_tail</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>,
+                                                         <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>);
+<a 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-GstQueueArray.html#gst-queue-array-is-empty" title="gst_queue_array_is_empty ()">gst_queue_array_is_empty</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</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-libs-GstQueueArray.html#gst-queue-array-drop-element" title="gst_queue_array_drop_element ()">gst_queue_array_drop_element</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</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> idx</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-GstQueueArray.html#gst-queue-array-find" title="gst_queue_array_find ()">gst_queue_array_find</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareFunc"><span class="type">GCompareFunc</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>
+</div>
+<div class="refsect1">
+<a name="gstreamer-libs-GstQueueArray.description"></a><h2>Description</h2>
+<p>
+<a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> is an object that provides standard queue functionality
+based on an array instead of linked lists. This reduces the overhead
+caused by memory managment by a large factor.
+</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-libs-GstQueueArray.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstQueueArray"></a><h3>GstQueueArray</h3>
+<pre class="programlisting">typedef struct _GstQueueArray GstQueueArray;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-new"></a><h3>gst_queue_array_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="returnvalue">GstQueueArray</span></a> *     gst_queue_array_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> initial_size</code></em>);</pre>
+<p>
+Allocates a new <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object with an initial
+queue size of <em class="parameter"><code>initial_size</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>initial_size</code></em> :</span></p></td>
+<td>Initial size of the new queue</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-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-free"></a><h3>gst_queue_array_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_queue_array_free                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>);</pre>
+<p>
+Frees queue <em class="parameter"><code>array</code></em> and all memory associated to it.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-get-length"></a><h3>gst_queue_array_get_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_queue_array_get_length          (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>);</pre>
+<p>
+Returns the length of the queue <em class="parameter"><code>array</code></em>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the length of the queue <em class="parameter"><code>array</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-pop-head"></a><h3>gst_queue_array_pop_head ()</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_queue_array_pop_head            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>);</pre>
+<p>
+Returns and head of the queue <em class="parameter"><code>array</code></em> and does not
+remove it from the queue.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The head of the queue</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-peek-head"></a><h3>gst_queue_array_peek_head ()</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_queue_array_peek_head           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-push-tail"></a><h3>gst_queue_array_push_tail ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_queue_array_push_tail           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>,
+                                                         <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>
+Pushes <em class="parameter"><code>data</code></em> to the tail of the queue <em class="parameter"><code>array</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>object to push</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-is-empty"></a><h3>gst_queue_array_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_queue_array_is_empty            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>);</pre>
+<p>
+Checks if the queue <em class="parameter"><code>array</code></em> is empty.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</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 queue <em class="parameter"><code>array</code></em> is empty</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-drop-element"></a><h3>gst_queue_array_drop_element ()</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_queue_array_drop_element        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</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> idx</code></em>);</pre>
+<p>
+Drops the queue element at position <em class="parameter"><code>idx</code></em> from queue <em class="parameter"><code>array</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>index to drop</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the dropped element</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-queue-array-find"></a><h3>gst_queue_array_find ()</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_queue_array_find                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> *array</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareFunc"><span class="type">GCompareFunc</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>
+Finds an element in the queue <em class="parameter"><code>array</code></em>, either by comparing every element
+with <em class="parameter"><code>func</code></em> or by looking up <em class="parameter"><code>data</code></em> if no compare function <em class="parameter"><code>func</code></em> is provided,
+and returning the index of the found element.
+</p>
+<p>
+Note that the index is not 0-based, but an internal index number with a
+random offset. The index can be used in connection with
+<a class="link" href="gstreamer-libs-GstQueueArray.html#gst-queue-array-drop-element" title="gst_queue_array_drop_element ()"><code class="function">gst_queue_array_drop_element()</code></a>. FIXME: return index 0-based and make
+<code class="function">_drop_element()</code> take a 0-based index.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-libs-GstQueueArray.html#GstQueueArray" title="GstQueueArray"><span class="type">GstQueueArray</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>comparison function, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to find <em class="parameter"><code>data</code></em> by value. <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"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>data for comparison function</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Index of the found element or -1 if nothing was found.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2.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/gstreamer-libs-GstStreamConsistency.html b/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
index 408ba59..7aec343 100644
--- a/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
+++ b/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstStreamConsistency</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
+<link rel="next" href="GstTestClock.html" title="GstTestClock">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <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 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>
+<td><a accesskey="n" href="GstTestClock.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-GstStreamConsistency.synopsis" class="shortcut">Top</a>
@@ -70,8 +70,11 @@
 Sets up a data probe on the given pad which will raise assertions if the
 data flow is inconsistent.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
@@ -91,8 +94,11 @@
 <p>
 Reset the stream checker's internal variables.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>consist</code></em> :</span></p></td>
 <td>The <a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> to reset.</td>
@@ -106,8 +112,11 @@
 <p>
 Frees the allocated data and probes associated with <em class="parameter"><code>consist</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>consist</code></em> :</span></p></td>
 <td>The <a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> to free.</td>
diff --git a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
index cbf51c9..e045069 100644
--- a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
+++ b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTypeFindHelper</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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-control.html" title="GStreamer Dynamic Parameter Control">
+<link rel="next" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <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-control.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-libs-GstDataQueue.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>
@@ -86,8 +86,11 @@
 <p>
 Free-function: gst_caps_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -129,8 +132,11 @@
 <p>
 Free-function: gst_caps_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -174,8 +180,11 @@
 <p>
 Free-function: gst_caps_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -219,8 +228,11 @@
 <p>
 Free-function: gst_caps_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -272,8 +284,11 @@
 <p>
 This function is supposed to behave exactly like a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstPadGetRangeFunction"><span class="type">GstPadGetRangeFunction</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
@@ -330,8 +345,11 @@
 <p>
 Free-function: gst_caps_unref
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
diff --git a/docs/libs/html/gstreamer-libs.html b/docs/libs/html/gstreamer-libs.html
index 1723b14..463f9d0 100644
--- a/docs/libs/html/gstreamer-libs.html
+++ b/docs/libs/html/gstreamer-libs.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -24,7 +24,7 @@
 <a name="gstreamer-libs"></a>Part I. GStreamer Libraries</h1></div></div></div>
 <div class="toc">
 <p><b>Table of Contents</b></p>
-<dl>
+<dl class="toc">
 <dt><span class="chapter"><a href="gstreamer-base.html">GStreamer Base and Utillity Classes</a></span></dt>
 <dd><dl>
 <dt>
@@ -62,6 +62,12 @@
 <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>
+<dt>
+<span class="refentrytitle"><a href="gstreamer-libs-GstQueueArray.html">GstQueueArray</a></span><span class="refpurpose"> — Array based queue object</span>
+</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-control.html">GStreamer Dynamic Parameter Control</a></span></dt>
 <dd><dl>
@@ -110,6 +116,9 @@
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstStreamConsistency.html">GstStreamConsistency</a></span><span class="refpurpose"> — Data flow consistency checker for GStreamer unit tests.</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="GstTestClock.html">GstTestClock</a></span><span class="refpurpose"> — Controllable, deterministic clock for GStreamer unit tests</span>
+</dt>
 </dl></dd>
 </dl>
 </div>
diff --git a/docs/libs/html/gstreamer-net.html b/docs/libs/html/gstreamer-net.html
index bddefc7..a65bec8 100644
--- a/docs/libs/html/gstreamer-net.html
+++ b/docs/libs/html/gstreamer-net.html
@@ -3,7 +3,7 @@
 <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.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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="GstTriggerControlSource.html" title="GstTriggerControlSource">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-net"></a>GStreamer Network Classes</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="GstNetClientClock.html">GstNetClientClock</a></span><span class="refpurpose"> — Special clock that synchronizes to a remote time
                     provider.</span>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 292a681..ffb6236 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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)">
@@ -15,14 +15,14 @@
 <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 1.0 (1.0.8)
+      for GStreamer Library 1.0 (1.1.1.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>
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="part"><a href="gstreamer-libs.html">I. GStreamer Libraries</a></span></dt>
 <dd><dl>
 <dt><span class="chapter"><a href="gstreamer-base.html">GStreamer Base and Utillity Classes</a></span></dt>
@@ -62,6 +62,12 @@
 <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>
+<dt>
+<span class="refentrytitle"><a href="gstreamer-libs-GstQueueArray.html">GstQueueArray</a></span><span class="refpurpose"> — Array based queue object</span>
+</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-control.html">GStreamer Dynamic Parameter Control</a></span></dt>
 <dd><dl>
@@ -110,6 +116,9 @@
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstStreamConsistency.html">GstStreamConsistency</a></span><span class="refpurpose"> — Data flow consistency checker for GStreamer unit tests.</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="GstTestClock.html">GstTestClock</a></span><span class="refpurpose"> — Controllable, deterministic clock for GStreamer unit tests</span>
+</dt>
 </dl></dd>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-hierarchy.html">Object Hierarchy</a></span></dt>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 99109c8..ab5cf11 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -113,6 +113,7 @@
 <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-bitrate" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--max-bitrate">
 <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">
@@ -459,6 +460,40 @@
 <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="gstreamer-libs-GstDataQueue" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html">
+<ANCHOR id="gstreamer-libs-GstDataQueue.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gstreamer-libs-GstDataQueue.synopsis">
+<ANCHOR id="gstreamer-libs-GstDataQueue.description" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gstreamer-libs-GstDataQueue.description">
+<ANCHOR id="gstreamer-libs-GstDataQueue.details" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gstreamer-libs-GstDataQueue.details">
+<ANCHOR id="GstDataQueue" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#GstDataQueue">
+<ANCHOR id="GstDataQueueSize" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#GstDataQueueSize">
+<ANCHOR id="GstDataQueueCheckFullFunction" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction">
+<ANCHOR id="GstDataQueueItem" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#GstDataQueueItem">
+<ANCHOR id="GstDataQueueEmptyCallback" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback">
+<ANCHOR id="GstDataQueueFullCallback" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback">
+<ANCHOR id="gst-data-queue-new" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-new">
+<ANCHOR id="gst-data-queue-push" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-push">
+<ANCHOR id="gst-data-queue-pop" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-pop">
+<ANCHOR id="gst-data-queue-flush" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-flush">
+<ANCHOR id="gst-data-queue-set-flushing" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-set-flushing">
+<ANCHOR id="gst-data-queue-drop-head" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-drop-head">
+<ANCHOR id="gst-data-queue-is-full" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-is-full">
+<ANCHOR id="gst-data-queue-is-empty" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-is-empty">
+<ANCHOR id="gst-data-queue-get-level" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-get-level">
+<ANCHOR id="gst-data-queue-limits-changed" href="gstreamer-libs-1.0/gstreamer-libs-GstDataQueue.html#gst-data-queue-limits-changed">
+<ANCHOR id="gstreamer-libs-GstQueueArray" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html">
+<ANCHOR id="gstreamer-libs-GstQueueArray.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gstreamer-libs-GstQueueArray.synopsis">
+<ANCHOR id="gstreamer-libs-GstQueueArray.description" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gstreamer-libs-GstQueueArray.description">
+<ANCHOR id="gstreamer-libs-GstQueueArray.details" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gstreamer-libs-GstQueueArray.details">
+<ANCHOR id="GstQueueArray" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#GstQueueArray">
+<ANCHOR id="gst-queue-array-new" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-new">
+<ANCHOR id="gst-queue-array-free" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-free">
+<ANCHOR id="gst-queue-array-get-length" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-get-length">
+<ANCHOR id="gst-queue-array-pop-head" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-pop-head">
+<ANCHOR id="gst-queue-array-peek-head" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-peek-head">
+<ANCHOR id="gst-queue-array-push-tail" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-push-tail">
+<ANCHOR id="gst-queue-array-is-empty" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-is-empty">
+<ANCHOR id="gst-queue-array-drop-element" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-drop-element">
+<ANCHOR id="gst-queue-array-find" href="gstreamer-libs-1.0/gstreamer-libs-GstQueueArray.html#gst-queue-array-find">
 <ANCHOR id="gstreamer-libs-GstARGBControlBinding" href="gstreamer-libs-1.0/gstreamer-libs-GstARGBControlBinding.html">
 <ANCHOR id="gstreamer-libs-GstARGBControlBinding.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstARGBControlBinding.html#gstreamer-libs-GstARGBControlBinding.synopsis">
 <ANCHOR id="gstreamer-libs-GstARGBControlBinding.description" href="gstreamer-libs-1.0/gstreamer-libs-GstARGBControlBinding.html#gstreamer-libs-GstARGBControlBinding.description">
@@ -583,12 +618,20 @@
 <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-equals-int-hex" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-int-hex">
+<ANCHOR id="fail-unless-equals-int64-hex" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-int64-hex">
+<ANCHOR id="fail-unless-equals-uint64-hex" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-uint64-hex">
+<ANCHOR id="fail-unless-equals-pointer" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-pointer">
 <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-equals-int-hex" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-int-hex">
+<ANCHOR id="assert-equals-int64-hex" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-int64-hex">
+<ANCHOR id="assert-equals-uint64-hex" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-uint64-hex">
+<ANCHOR id="assert-equals-pointer" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-pointer">
 <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">
@@ -607,6 +650,8 @@
 <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="gst-check-setup-events" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-events">
+<ANCHOR id="gst-check-setup-events-with-stream-id" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-events-with-stream-id">
 <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">
@@ -622,6 +667,28 @@
 <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="GstTestClock" href="gstreamer-libs-1.0/GstTestClock.html">
+<ANCHOR id="GstTestClock.synopsis" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.synopsis">
+<ANCHOR id="GstTestClock.object-hierarchy" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.object-hierarchy">
+<ANCHOR id="GstTestClock.properties" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.properties">
+<ANCHOR id="GstTestClock.description" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.description">
+<ANCHOR id="GstTestClock.details" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.details">
+<ANCHOR id="GstTestClock-struct" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock-struct">
+<ANCHOR id="GstTestClockClass" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClockClass">
+<ANCHOR id="gst-test-clock-new" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-new">
+<ANCHOR id="gst-test-clock-new-with-start-time" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-new-with-start-time">
+<ANCHOR id="gst-test-clock-set-time" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-set-time">
+<ANCHOR id="gst-test-clock-advance-time" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-advance-time">
+<ANCHOR id="gst-test-clock-peek-id-count" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-peek-id-count">
+<ANCHOR id="gst-test-clock-has-id" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-has-id">
+<ANCHOR id="gst-test-clock-peek-next-pending-id" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-peek-next-pending-id">
+<ANCHOR id="gst-test-clock-wait-for-next-pending-id" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-wait-for-next-pending-id">
+<ANCHOR id="gst-test-clock-wait-for-pending-id-count" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-wait-for-pending-id-count">
+<ANCHOR id="gst-test-clock-process-next-clock-id" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-process-next-clock-id">
+<ANCHOR id="gst-test-clock-get-next-entry-time" href="gstreamer-libs-1.0/GstTestClock.html#gst-test-clock-get-next-entry-time">
+<ANCHOR id="GstTestClock.property-details" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.property-details">
+<ANCHOR id="GstTestClock--start-time" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock--start-time">
+<ANCHOR id="GstTestClock.see-also" href="gstreamer-libs-1.0/GstTestClock.html#GstTestClock.see-also">
 <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">
diff --git a/docs/manual/Makefile.in b/docs/manual/Makefile.in
index d7663b5..5b2341f 100644
--- a/docs/manual/Makefile.in
+++ b/docs/manual/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +37,51 @@
 # install directory trees :(
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -74,9 +101,10 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(srcdir)/../htmlinstall.mak \
-	$(srcdir)/../manuals.mak $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(srcdir)/../manuals.mak \
+	$(top_srcdir)/common/upload-doc.mak \
+	$(srcdir)/../htmlinstall.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am README
 subdir = docs/manual
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -84,7 +112,6 @@
 	$(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 \
@@ -108,24 +135,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -162,6 +197,7 @@
   }
 am__installdirs = "$(DESTDIR)$(manualdir)"
 DATA = $(manual_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -261,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -279,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -291,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -353,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -585,11 +617,11 @@
 	@list='$(manual_DATA)'; test -n "$(manualdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(manualdir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -723,17 +755,18 @@
 .MAKE: check-am install-am install-strip
 
 .PHONY: all all-am all-local check check-am check-local clean \
-	clean-generic clean-libtool clean-local distclean \
-	distclean-generic distclean-libtool distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-data-local install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-manualDATA \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-local uninstall-manualDATA
+	clean-generic clean-libtool clean-local cscopelist-am ctags-am \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-manualDATA install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-local \
+	uninstall-manualDATA
 
 
 ### generate all documentation by default
@@ -773,20 +806,12 @@
 	cp ../version.entities $(BUILDDIR) ; \
 	cp $(top_srcdir)/docs/url.entities $(BUILDDIR)
 
-# we should switch to xsltproc
-# docbook2html aka jade can't add the encoding easily to the html meta
-# (but we are lazy and just abuse sed to add it)
-# jw -f docbook -b html -d pwg.dsl -o ../html -V '%use-id-as-filename%' $(MAIN)
-# this is a starting point
-# xsltproc --nonet /usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl pwg.xml
-# 
 html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
 	@$(MAKE) check-local
 	@echo "*** Generating HTML output ***"
 	@-mkdir -p html
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	@cd $(BUILDDIR) && SP_ENCODING="UTF-8" docbook2html -o ../html -V '%use-id-as-filename%' $(MAIN)
-	@$(SED) -i -e 's/\(^CONTENT.*\)\(.>\)/\1;charset=UTF-8\2/' html/*html
+	@cd $(BUILDDIR) && $(XSLTPROC) -o ../html/ --stringparam chunker.output.encoding UTF-8 --stringparam  use.id.as.filename 1 $(XSLTPROC_FLAGS) "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" $(MAIN)
 	@test "x$(CSS)" != "x" && \
           echo "Copying .css files: $(CSS)" && \
           cp $(srcdir)/$(CSS) html
@@ -860,7 +885,20 @@
 # make sure xml validates properly
 check-local: $(BUILDDIR)/$(MAIN)
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && \
+	if [ `which curl` ]; then \
+    links=`$(XSLTPROC) $(XSLTPROC_FLAGS) --xinclude $(abs_top_srcdir)/docs/list-ulink.xsl $(MAIN) | egrep '^http' | sort | uniq` && \
+    have_error=0 && \
+    for link in $$links; do \
+      code=`curl -s -m20 -o /dev/null -I -w "%{http_code}" $$link`; \
+      if [ \( $$? -ne 0 \) -o \( $$code -gt 399 \) ]; then \
+        echo "exit_status=$$?, http_code=$$code: $$link"; \
+        grep -Hnr "$$link" .; \
+        have_error=1; \
+      fi; \
+    done \
+  fi
 
 # avoid 'cp: cannot create regular file `build/image.entities': File exists'
 # errors during 'make distcheck' by disabling parallel builds
diff --git a/docs/manual/advanced-dataaccess.xml b/docs/manual/advanced-dataaccess.xml
index 983d757..7661191 100644
--- a/docs/manual/advanced-dataaccess.xml
+++ b/docs/manual/advanced-dataaccess.xml
@@ -579,7 +579,7 @@
         </listitem>
         <listitem>
           <para>
-            It the appsrc operates in live mode or not. This can be configured
+            If the appsrc operates in live mode or not. This can be configured
             with the is-live property. When operating in live-mode it is
             important to configure the min-latency and max-latency in appsrc.
             The min-latency should be set to the amount of time it takes between
@@ -1396,7 +1396,7 @@
 
   gst_pad_remove_probe (pad, GST_PAD_PROBE_INFO_ID (info));
 
-  /* push current event back into the queue */
+  /* push current effect back into the queue */
   g_queue_push_tail (&effects, gst_object_ref (cur_effect));
   /* take next effect from the queue */
   next = g_queue_pop_head (&effects);
diff --git a/docs/manual/advanced-dparams.xml b/docs/manual/advanced-dparams.xml
index b7730af..4459e01 100644
--- a/docs/manual/advanced-dparams.xml
+++ b/docs/manual/advanced-dparams.xml
@@ -5,86 +5,97 @@
     <title>Getting Started</title>
     <para>
       The controller subsystem offers a lightweight way to adjust gobject
-      properties over stream-time. Normaly these properties are changed using
+      properties over stream-time. Normally these properties are changed using
       <function>g_object_set()</function>. Timing those calls reliably so that
       the changes affect certain stream times is close to impossible. The
       controller takes time into account. It works by attaching control-sources
-      to properties. Control-sources can provide new values for the properties
-      for a given timestamp. At run-time the elements continously pull values
-      changes for the current stream-time. GStreamer includes a few different
-      control-sources, but applications can define their own by subclassing.
+      to properties using control-bindings. Control-sources provide values for a
+      given time-stamp that are usually in the range of 0.0 to 1.0. 
+      Control-bindings map the control-value to a gobject property they are bound to
+      - converting the type and scaling to the target property value range.
+      At run-time the elements continuously pull values changes for the current
+      stream-time to update the gobject properties. GStreamer includes a few
+      different control-sources and control-bindings already, but applications can
+      define their own by sub-classing from the respective base classes.
     </para>
     <para>
-      This subsystem is contained within the
+      Most parts of the controller mechanism is implemented in GstObject. Also the
+      base classes for control-sources and control-bindings are included in the core
+      library. The existing implementations are contained within the
       <filename>gstcontroller</filename> library.
       You need to include the header in your application's source file:
     </para>
     <programlisting>
 ...
 #include &lt;gst/gst.h&gt;
-#include &lt;gst/controller/gstcontroller.h&gt;
+#include &lt;gst/controller/gstinterpolationcontrolsource.h&gt;
+#include &lt;gst/controller/gstdirectcontrolbinding.h&gt;
 ...
     </programlisting>
     <para>
-      Your application should link to the shared library <filename>gstreamer-controller</filename>.
+      Your application should link to the shared library 
+      <filename>gstreamer-controller</filename>. One can get the required flag for
+      compiler and linker by using pkg-config for gstreamer-controller-1.0.
     </para>
-    <para>
-      The <filename>gstreamer-controller</filename> library needs to be initialized
-      when your application is run.  This can be done after the GStreamer
-      library has been initialized.
-    </para>
-    <programlisting>
-  ...
-  gst_init (&amp;argc, &amp;argv);
-  gst_controller_init (&amp;argc, &amp;argv);
-  ...
-    </programlisting>
   </sect1>
   
   <sect1 id="section-dparams-parameters">
     <title>Setting up parameter control</title>
     <para>
-      Create a control-source. Lets use an interpolation control-source:
+      If we have our pipeline set up and want to control some parameters, we first
+      need to create a control-source. Lets use an interpolation control-source:
     </para>
     <programlisting>
   csource = gst_interpolation_control_source_new ();
   g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
     </programlisting>
     <para>
-      Now we need to assign the control-source to the gobject property. One
-      control source can only be assigned to one property.
+      Now we need to attach the control-source to the gobject property. This is done
+      with a control-binding. One control source can be attached to several object
+      properties (even in different objects) using separate control-bindings.
     </para>
     <programlisting>
       gst_object_add_control_binding (object, gst_direct_control_binding_new (object, "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 
-      interpolation-mode.
+      This type 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 behavior can be configured by setting the mode property of the
+      control-source. Other control sources e.g. produce a stream of values by
+      calling <function>sin()</function> function. They have parameters to control
+      e.g. the frequency. As control-sources are GstObjects too, one can attach
+      control-sources to these properties too.
     </para>
     <para>
-      Now we can set some control points. These are time-stamped GValues.
+      Now we can set some control points. These are time-stamped gdouble values and
+      are usually in the range of 0.0 to 1.0. A value of 1.0 is later mapped to the
+      maximum value in the target properties value range.
       The values become active when the timestamp is reached. They still stay
       in the list. If e.g. the pipeline runs a loop (using a segmented seek),
-      the control-curve gets repeated as well. Other control-sources have
-      different functions to specify the control-changes over time.
+      the control-curve gets repeated as well.
     </para>
     <programlisting>
-  gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1);
-  gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2);
+  GstTimedValueControlSource *tv_csource = (GstTimedValueControlSource *)csource;
+  gst_timed_value_control_source_set (tv_csource, 0 * GST_SECOND, 0.0);
+  gst_timed_value_control_source_set (tv_csource, 1 * GST_SECOND, 1.0);
     </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 
-      <function>g_object_set()</function>.
+      Now everything is ready to play. If the control-source is e.g. bound to a
+      volume property, we will head a fade-in over 1 second. One word of caution,
+      the volume element that comes with gstreamer has a value range of 0.0 to 4.0
+      on its volume property. If the above control-source is attached to the property
+      the volume will ramp up to 400%!
+    </para>
+    <para>
+      One final note - the controller subsystem has a built-in live-mode. Even though
+      a property has a control-source assigned one can change the GObject property
+      through the <function>g_object_set()</function>.
       This is highly useful when binding the GObject properties to GUI widgets.
       When the user adjusts the value with the widget, one can set the GObject
       property and this remains active until the next programmed control-source
-      value overrides it. This also works with smoothed parameters. It might not
-      work for control-sources that constantly update the property (e.g. the lfo
-      control-source).
+      value overrides it. This also works with smoothed parameters. It does not
+      work for control-sources that constantly update the property (e.g. the
+      lfo_control_source).
     </para>
   </sect1>
   
diff --git a/docs/manual/advanced-metadata.xml b/docs/manual/advanced-metadata.xml
index ec34a2e..78a3677 100644
--- a/docs/manual/advanced-metadata.xml
+++ b/docs/manual/advanced-metadata.xml
@@ -10,7 +10,8 @@
     description of the properties of a stream. This can include video size,
     audio samplerate, codecs used and so on. Tags are handled using the
     &GStreamer; tagging system. Stream-info can be retrieved from a
-    <classname>GstPad</classname>.
+    <classname>GstPad</classname> by getting the current (negotiated)
+    <classname>GstCaps</classname> for that pad.
   </para>
 
   <sect1 id="section-tags-read">
@@ -59,7 +60,7 @@
   for (i = 0; i &lt; num; ++i) {
     const GValue *val;
 
-    /* Note: when looking for specific tags, use the g_tag_list_get_xyz() API,
+    /* Note: when looking for specific tags, use the gst_tag_list_get_xyz() API,
      * we only use the GValue approach here because it is more generic */
     val = gst_tag_list_get_value_index (list, tag, i);
     if (G_VALUE_HOLDS_STRING (val)) {
@@ -72,11 +73,16 @@
       g_print ("\t%20s : %s\n", tag,
           (g_value_get_boolean (val)) ? "true" : "false");
     } else if (GST_VALUE_HOLDS_BUFFER (val)) {
-      g_print ("\t%20s : buffer of size %u\n", tag,
-          GST_BUFFER_SIZE (gst_value_get_buffer (val)));
-    } else if (GST_VALUE_HOLDS_DATE (val)) {
-      g_print ("\t%20s : date (year=%u,...)\n", tag,
-          g_date_get_year (gst_value_get_date (val)));
+      GstBuffer *buf = gst_value_get_buffer (val);
+      guint buffer_size = gst_buffer_get_size (buf);
+
+      g_print ("\t%20s : buffer of size %u\n", tag, buffer_size);
+    } else if (GST_VALUE_HOLDS_DATE_TIME (val)) {
+      GstDateTime *dt = g_value_get_boxed (val);
+      gchar *dt_str = gst_date_time_to_iso8601_string (dt);
+
+      g_print ("\t%20s : %s\n", tag, dt_str);
+      g_free (dt_str);
     } else {
       g_print ("\t%20s : tag of type '%s'\n", tag, G_VALUE_TYPE_NAME (val));
     }
diff --git a/docs/manual/advanced-threads.xml b/docs/manual/advanced-threads.xml
index 5925640..cf2f50c 100644
--- a/docs/manual/advanced-threads.xml
+++ b/docs/manual/advanced-threads.xml
@@ -101,8 +101,8 @@
       <itemizedlist>
         <listitem>
           <para>
-            When going from READY to PAUSED state, udpsrc will require a
-            streaming thread for pushing data into the depayloader. It will
+            When going from READY to PAUSED state, fakesrc will require a
+            streaming thread for pushing data into the fakesink. It will
             post a STREAM_STATUS message indicating its requirement for a
             streaming thread.
           </para>
diff --git a/docs/manual/appendix-integration.xml b/docs/manual/appendix-integration.xml
index 9be6602..67c8916 100644
--- a/docs/manual/appendix-integration.xml
+++ b/docs/manual/appendix-integration.xml
@@ -57,7 +57,7 @@
       onwards. Nowadays, a whole bunch of GNOME applications make use of
       &GStreamer; for media-processing, including (but not limited to)
       <ulink type="http" url="http://www.rhythmbox.org/">Rhythmbox</ulink>,
-      <ulink type="http" url="http://www.hadess.net/totem.php3">Totem</ulink>
+      <ulink type="http" url="http://projects.gnome.org/totem/">Totem</ulink>
       and <ulink type="http"
       url="http://www.burtonini.com/blog/computers/sound-juicer">Sound
       Juicer</ulink>.
@@ -153,14 +153,8 @@
       </listitem>
       <listitem>
         <para>
-          GNOME stores the default video and audio sources and sinks in GConf.
-          &GStreamer; provides a number of elements that create audio and
-          video sources and sinks directly based on those GConf settings. 
-          Those elements are: gconfaudiosink, gconfvideosink, gconfaudiosrc
-          and gconfvideosrc. You can create them with
-          <function>gst_element_factory_make ()</function> and use them
-          directly just like you would use any other source or sink element.
-          All GNOME applications are recommended to use those elements.
+          GNOME uses Pulseaudio for audio, use the pulsesrc and
+          pulsesink elements to have access to all the features.
         </para>
       </listitem>
       <listitem>
diff --git a/docs/manual/appendix-porting.xml b/docs/manual/appendix-porting.xml
index 107db3e..0bc1e63 100644
--- a/docs/manual/appendix-porting.xml
+++ b/docs/manual/appendix-porting.xml
@@ -130,13 +130,17 @@
 </chapter>
 <chapter id="chapter-porting-1.0">
   <title>Porting 0.10 applications to 1.0</title>
+
+  <para>This section outlines some of the changes necessary to port
+  applications from &GStreamer;-0.10 to &GStreamer;-1.0. For a
+  comprehensive and up-to-date list, see the separate <ulink
+  type="http"
+  url="http://cgit.freedesktop.org/gstreamer/gstreamer/plain/docs/random/porting-to-1.0.txt">
+  Porting to 1.0</ulink> document.
+  </para>
   <para>
-    This section of the appendix will discuss shortly what changes to
-    applications will be needed to quickly and conveniently port most
-    applications from &GStreamer;-0.10 to &GStreamer;-1.0, with references
-    to the relevant sections in this Application Development Manual
-    where needed. With this list, it should be possible to port simple
-    applications to &GStreamer;-1.0 in less than a day.
+    It should be possible to port simple applications to
+    &GStreamer;-1.0 in less than a day.
   </para>
 
   <sect1 id="section-porting-objects-1.0">
@@ -145,7 +149,9 @@
       <listitem>
         <para>
           All deprecated methods were removed. Recompile against 0.10 with
-          DISABLE_DEPRECATED and fix issues before attempting to port to 1.0.
+	  GST_DISABLE_DEPRECATED defined (such as by adding
+	  -DGST_DISABLE_DEPRECATED to the compiler flags) and fix issues
+	  before attempting to port to 1.0.
         </para>
       </listitem>
       <listitem>
@@ -186,7 +192,8 @@
         <para>
           playbin also proxies the GstColorBalance and GstNavigation interfaces,
           so applications that use this don't need to go fishing for elements
-          that may implement those any more, but can just use them unconditionally.
+	  that may implement those any more, but can just use on playbin
+	  unconditionally.
         </para>
       </listitem>
       <listitem>
diff --git a/docs/manual/basics-elements.xml b/docs/manual/basics-elements.xml
index 8f81493..8b104a9 100644
--- a/docs/manual/basics-elements.xml
+++ b/docs/manual/basics-elements.xml
@@ -283,9 +283,9 @@
     <para>
       For more information about <classname>GObject</classname>
       properties we recommend you read the <ulink
-      url="http://developer.gnome.org/doc/API/2.0/gobject/index.html"
+      url="http://developer.gnome.org/gobject/stable/rn01.html"
       type="http">GObject manual</ulink> and an introduction to <ulink
-      url="http://developer.gnome.org/doc/API/2.0/gobject/pr01.html" type="http">
+      url="http://developer.gnome.org/gobject/stable/pt01.html" type="http">
 	The Glib Object system</ulink>.
     </para>
     <para>
diff --git a/docs/manual/basics-init.xml b/docs/manual/basics-init.xml
index f543caa..7a8467b 100644
--- a/docs/manual/basics-init.xml
+++ b/docs/manual/basics-init.xml
@@ -115,7 +115,7 @@
     </example>
     <para>
       As shown in this fragment, you can use a <ulink
-      url="http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html"
+      url="http://developer.gnome.org/glib/stable/glib-Commandline-option-parser.html"
       type="http">GOption</ulink> table to define your application-specific
       command line options, and pass this table to the GLib initialization
       function along with the option group returned from the
diff --git a/docs/manual/basics-pads.xml b/docs/manual/basics-pads.xml
index c490a25..a9e98d0 100644
--- a/docs/manual/basics-pads.xml
+++ b/docs/manual/basics-pads.xml
@@ -593,9 +593,9 @@
       <para>
         See the API references for the full API of
 	<ulink type="http"
-	  url="&URLAPI;GstStructure.html"><classname>GstStructure</classname></ulink>
+	  url="&URLAPI;gstreamer-GstStructure.html"><classname>GstStructure</classname></ulink>
 	and <ulink type="http"
-	  url="&URLAPI;GstCaps.html"><classname>GstCaps</classname></ulink>.
+	  url="&URLAPI;gstreamer-GstCaps.html"><classname>GstCaps</classname></ulink>.
       </para>
     </sect2>
   </sect1>
diff --git a/docs/manual/intro-motivation.xml b/docs/manual/intro-motivation.xml
index 88060fa..e2d7f21 100644
--- a/docs/manual/intro-motivation.xml
+++ b/docs/manual/intro-motivation.xml
@@ -287,10 +287,10 @@
       <title>Provide a framework for codec experimentation</title>
       <para>
 	&GStreamer; also wants to be an easy framework where codec
-	developers can experiment with different algorithms, speeding up
-	the development of open and free multimedia codecs like <ulink
-	url="http://www.xiph.org/ogg/index.html" type="http">Theora and
-	Vorbis</ulink>.
+	developers can experiment with different algorithms, speeding up the
+	development of open and free multimedia codecs like those developed
+	by the <ulink url="http://www.xiph.org" type="http">Xiph.Org
+	Foundation</ulink> (such as Theora and	Vorbis.
       </para>
     </section>
 
diff --git a/docs/manual/state-diagram.fig b/docs/manual/state-diagram.fig
deleted file mode 100644
index 1b10e5d..0000000
--- a/docs/manual/state-diagram.fig
+++ /dev/null
@@ -1,46 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 3600 1950 480 480 3600 1950 3975 2250
-1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 3600 3150 480 480 3600 3150 3975 3450
-1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 3600 4350 480 480 3600 4350 3975 4650
-1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 4875 4350 480 480 4875 4350 5250 4650
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 60.00 120.00
-	 3600 900 3600 1500
-2 2 0 1 7 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 1350 750 5550 750 5550 5100 1350 5100 1350 750
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
-	1 1 1.00 60.00 120.00
-	 3150 1875 2700 2400 3150 2925
-	 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
-	1 1 1.00 60.00 120.00
-	 3150 3150 2700 3675 3150 4200
-	 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
-	1 1 1.00 60.00 120.00
-	 3750 3900 4275 3675 4800 3900
-	 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
-	1 1 1.00 60.00 120.00
-	 4800 4800 4275 5025 3750 4800
-	 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
-	1 1 1.00 60.00 120.00
-	 5175 3975 5175 2475 4050 1725
-	 0.000 -1.000 0.000
-3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3
-	1 1 1.00 60.00 120.00
-	 3225 4650 1575 3300 3150 1725
-	 0.000 -1.000 0.000
-4 0 0 50 0 0 12 0.0000 4 135 480 3375 2025 NULL\001
-4 0 0 50 0 0 12 0.0000 4 135 645 3300 3225 READY\001
-4 0 0 50 0 0 12 0.0000 4 135 810 3225 4425 PLAYING\001
-4 0 0 50 0 0 12 0.0000 4 135 735 4500 4425 PAUSED\001
diff --git a/docs/manuals.mak b/docs/manuals.mak
index ebf65e4..c0fec85 100644
--- a/docs/manuals.mak
+++ b/docs/manuals.mak
@@ -87,20 +87,12 @@
 	cp ../version.entities $(BUILDDIR) ; \
 	cp $(top_srcdir)/docs/url.entities $(BUILDDIR)
 
-# we should switch to xsltproc
-# docbook2html aka jade can't add the encoding easily to the html meta
-# (but we are lazy and just abuse sed to add it)
-# jw -f docbook -b html -d pwg.dsl -o ../html -V '%use-id-as-filename%' $(MAIN)
-# this is a starting point
-# xsltproc --nonet /usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl pwg.xml
-# 
 html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
 	@$(MAKE) check-local
 	@echo "*** Generating HTML output ***"
 	@-mkdir -p html
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	@cd $(BUILDDIR) && SP_ENCODING="UTF-8" docbook2html -o ../html -V '%use-id-as-filename%' $(MAIN)
-	@$(SED) -i -e 's/\(^CONTENT.*\)\(.>\)/\1;charset=UTF-8\2/' html/*html
+	@cd $(BUILDDIR) && $(XSLTPROC) -o ../html/ --stringparam chunker.output.encoding UTF-8 --stringparam  use.id.as.filename 1 $(XSLTPROC_FLAGS) "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" $(MAIN)
 	@test "x$(CSS)" != "x" && \
           echo "Copying .css files: $(CSS)" && \
           cp $(srcdir)/$(CSS) html
@@ -174,7 +166,20 @@
 # make sure xml validates properly
 check-local: $(BUILDDIR)/$(MAIN)
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && \
+	if [ `which curl` ]; then \
+    links=`$(XSLTPROC) $(XSLTPROC_FLAGS) --xinclude $(abs_top_srcdir)/docs/list-ulink.xsl $(MAIN) | egrep '^http' | sort | uniq` && \
+    have_error=0 && \
+    for link in $$links; do \
+      code=`curl -s -m20 -o /dev/null -I -w "%{http_code}" $$link`; \
+      if [ \( $$? -ne 0 \) -o \( $$code -gt 399 \) ]; then \
+        echo "exit_status=$$?, http_code=$$code: $$link"; \
+        grep -Hnr "$$link" .; \
+        have_error=1; \
+      fi; \
+    done \
+  fi
 
 # avoid 'cp: cannot create regular file `build/image.entities': File exists'
 # errors during 'make distcheck' by disabling parallel builds
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 6bb5083..19f28da 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -15,7 +15,7 @@
 
 # Extra environment needed for Core only...
 INSPECT_EXTRA_ENVIRONMENT= \
-    GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
+    GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
 
 # The top-level SGML file. Change it if you want.
 DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 1e17456..9ff92bf 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +31,51 @@
 # This is an include file specifically tuned for building documentation
 # for GStreamer plug-ins
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -68,9 +95,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gtk-doc-plugins.mak \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
+	$(top_srcdir)/common/gtk-doc-plugins.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/plugins
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -78,7 +105,6 @@
 	$(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 \
@@ -102,24 +128,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -127,6 +161,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -226,15 +261,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -244,11 +275,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -256,6 +285,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -318,6 +348,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -426,7 +457,7 @@
 
 # Extra environment needed for Core only...
 INSPECT_EXTRA_ENVIRONMENT = \
-    GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
+    GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner
 
 
 # The top-level SGML file. Change it if you want.
@@ -581,9 +612,9 @@
 @ENABLE_GTK_DOC_TRUE@INSPECT_REGISTRY = $(top_builddir)/docs/plugins/inspect-registry.xml
 @ENABLE_GTK_DOC_TRUE@INSPECT_ENVIRONMENT = \
 @ENABLE_GTK_DOC_TRUE@	LC_ALL=C \
-@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_SYSTEM_PATH= \
-@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
-@ENABLE_GTK_DOC_TRUE@	GST_REGISTRY=$(INSPECT_REGISTRY) \
+@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_SYSTEM_PATH_1_0= \
+@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
+@ENABLE_GTK_DOC_TRUE@	GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \
 @ENABLE_GTK_DOC_TRUE@	PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @ENABLE_GTK_DOC_TRUE@	$(INSPECT_EXTRA_ENVIRONMENT)
 
@@ -631,11 +662,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -774,17 +805,17 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local 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-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-local
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	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-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-local
 
 html: html-build.stamp
 
@@ -973,10 +1004,7 @@
 @ENABLE_GTK_DOC_TRUE@	    mkhtml_options="$$mkhtml_options --verbose"; \
 @ENABLE_GTK_DOC_TRUE@	  fi; \
 @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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/version.entities
@@ -1036,9 +1064,9 @@
 	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	    done; \
 	  fi; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args
index be3f662..88dfe0e 100644
--- a/docs/plugins/gstreamer-plugins.args
+++ b/docs/plugins/gstreamer-plugins.args
@@ -1,34 +1,744 @@
 <ARG>
-<NAME>GstPipeline::delay</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Delay</NICK>
-<BLURB>Expected delay needed for elements to spin up to PLAYING in nanoseconds.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstPipeline::auto-flush-bus</NAME>
+<NAME>GstValve::drop</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>Auto Flush Bus</NICK>
-<BLURB>Whether to automatically flush the pipeline's bus when going from READY into NULL state.</BLURB>
+<NICK>Drop buffers and events</NICK>
+<BLURB>Whether to drop buffers and events or let them through.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTypeFindElement::caps</NAME>
+<TYPE>GstCaps*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>caps</NICK>
+<BLURB>detected capabilities in stream.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTypeFindElement::force-caps</NAME>
+<TYPE>GstCaps*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>force caps</NICK>
+<BLURB>force caps without doing a typefind.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTypeFindElement::minimum</NAME>
+<TYPE>guint</TYPE>
+<RANGE>[1,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>minimum</NICK>
+<BLURB>minimum probability required to accept caps.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTee::alloc-pad</NAME>
+<TYPE>GstPad*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Allocation Src Pad</NICK>
+<BLURB>The pad ALLOCATION queries will be proxied to (unused).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTee::has-chain</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Has Chain</NICK>
+<BLURB>If the element can operate in push mode.</BLURB>
 <DEFAULT>TRUE</DEFAULT>
 </ARG>
 
 <ARG>
-<NAME>GstCapsFilter::caps</NAME>
-<TYPE>GstCaps*</TYPE>
+<NAME>GstTee::last-message</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Last Message</NICK>
+<BLURB>The message describing current status.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTee::num-src-pads</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Num Src Pads</NICK>
+<BLURB>The number of source pads.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTee::pull-mode</NAME>
+<TYPE>GstTeePullMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Pull mode</NICK>
+<BLURB>Behavior of tee in pull mode.</BLURB>
+<DEFAULT>Never activate in pull mode</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTee::silent</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Silent</NICK>
+<BLURB>Don't produce last_message events.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::current-level-buffers</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current level (buffers)</NICK>
+<BLURB>Current number of buffers in the queue.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::current-level-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current level (kB)</NICK>
+<BLURB>Current amount of data in the queue (bytes).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::current-level-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current level (ns)</NICK>
+<BLURB>Current amount of data in the queue (in ns).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::high-percent</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>High percent</NICK>
+<BLURB>High threshold for buffering to finish. Only used if use-buffering is True.</BLURB>
+<DEFAULT>99</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::low-percent</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Low percent</NICK>
+<BLURB>Low threshold for buffering to start. Only used if use-buffering is True.</BLURB>
+<DEFAULT>10</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::max-size-buffers</NAME>
+<TYPE>guint</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>Filter caps</NICK>
-<BLURB>Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.</BLURB>
+<NICK>Max. size (buffers)</NICK>
+<BLURB>Max. number of buffers in the queue (0=disable).</BLURB>
+<DEFAULT>100</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::max-size-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (kB)</NICK>
+<BLURB>Max. amount of data in the queue (bytes, 0=disable).</BLURB>
+<DEFAULT>2097152</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::max-size-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (ns)</NICK>
+<BLURB>Max. amount of data in the queue (in ns, 0=disable).</BLURB>
+<DEFAULT>2000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::ring-buffer-max-size</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. ring buffer size (bytes)</NICK>
+<BLURB>Max. amount of data in the ring buffer (bytes, 0 = disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::temp-location</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Temporary File Location</NICK>
+<BLURB>Location to store temporary files in (Only read this property, use temp-template to configure the name template).</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::temp-remove</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Remove the Temporary File</NICK>
+<BLURB>Remove the temp-location after use.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::temp-template</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Temporary File Template</NICK>
+<BLURB>File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled).</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::use-buffering</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Use buffering</NICK>
+<BLURB>Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue2::use-rate-estimate</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Use Rate Estimate</NICK>
+<BLURB>Estimate the bitrate of the stream to calculate time level.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::current-level-buffers</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current level (buffers)</NICK>
+<BLURB>Current number of buffers in the queue.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::current-level-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current level (kB)</NICK>
+<BLURB>Current amount of data in the queue (bytes).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::current-level-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current level (ns)</NICK>
+<BLURB>Current amount of data in the queue (in ns).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::flush-on-eos</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Flush on EOS</NICK>
+<BLURB>Discard all data in the queue when an EOS event is received.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::leaky</NAME>
+<TYPE>GstQueueLeaky</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Leaky</NICK>
+<BLURB>Where the queue leaks, if at all.</BLURB>
+<DEFAULT>Not Leaky</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::max-size-buffers</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (buffers)</NICK>
+<BLURB>Max. number of buffers in the queue (0=disable).</BLURB>
+<DEFAULT>200</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::max-size-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (kB)</NICK>
+<BLURB>Max. amount of data in the queue (bytes, 0=disable).</BLURB>
+<DEFAULT>10485760</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::max-size-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (ns)</NICK>
+<BLURB>Max. amount of data in the queue (in ns, 0=disable).</BLURB>
+<DEFAULT>1000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::min-threshold-buffers</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Min. threshold (buffers)</NICK>
+<BLURB>Min. number of buffers in the queue to allow reading (0=disable).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::min-threshold-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Min. threshold (kB)</NICK>
+<BLURB>Min. amount of data in the queue to allow reading (bytes, 0=disable).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::min-threshold-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Min. threshold (ns)</NICK>
+<BLURB>Min. amount of data in the queue to allow reading (in ns, 0=disable).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQueue::silent</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Silent</NICK>
+<BLURB>Don't emit queue signals.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOutputSelector::active-pad</NAME>
+<TYPE>GstPad*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Active pad</NICK>
+<BLURB>Currently active src pad.</BLURB>
 <DEFAULT></DEFAULT>
 </ARG>
 
 <ARG>
+<NAME>GstOutputSelector::pad-negotiation-mode</NAME>
+<TYPE>GstOutputSelectorPadNegotiationMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Pad negotiation mode</NICK>
+<BLURB>The mode to be used for pad negotiation.</BLURB>
+<DEFAULT>All</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOutputSelector::resend-latest</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Resend latest buffer</NICK>
+<BLURB>Resend latest buffer after a switch to a new pad.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::extra-size-buffers</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Extra Size (buffers)</NICK>
+<BLURB>Amount of buffers the queues can grow if one of them is empty (0=disable) (NOT IMPLEMENTED).</BLURB>
+<DEFAULT>5</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::extra-size-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Extra Size (kB)</NICK>
+<BLURB>Amount of data the queues can grow if one of them is empty (bytes, 0=disable) (NOT IMPLEMENTED).</BLURB>
+<DEFAULT>10485760</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::extra-size-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Extra Size (ns)</NICK>
+<BLURB>Amount of time the queues can grow if one of them is empty (in ns, 0=disable) (NOT IMPLEMENTED).</BLURB>
+<DEFAULT>3000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::high-percent</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>High percent</NICK>
+<BLURB>High threshold for buffering to finish.</BLURB>
+<DEFAULT>99</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::low-percent</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Low percent</NICK>
+<BLURB>Low threshold for buffering to start.</BLURB>
+<DEFAULT>10</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::max-size-buffers</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (buffers)</NICK>
+<BLURB>Max. number of buffers in the queue (0=disable).</BLURB>
+<DEFAULT>5</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::max-size-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (kB)</NICK>
+<BLURB>Max. amount of data in the queue (bytes, 0=disable).</BLURB>
+<DEFAULT>10485760</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::max-size-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (ns)</NICK>
+<BLURB>Max. amount of data in the queue (in ns, 0=disable).</BLURB>
+<DEFAULT>2000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::sync-by-running-time</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync By Running Time</NICK>
+<BLURB>Synchronize deactivated or not-linked streams by running time.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiQueue::use-buffering</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Use buffering</NICK>
+<BLURB>Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstInputSelector::active-pad</NAME>
+<TYPE>GstPad*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Active pad</NICK>
+<BLURB>The currently active sink pad.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstInputSelector::cache-buffers</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Cache Buffers</NICK>
+<BLURB>Cache buffers for active-pad.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstInputSelector::n-pads</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Number of Pads</NICK>
+<BLURB>The number of sink pads.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstInputSelector::sync-mode</NAME>
+<TYPE>GstInputSelectorSyncMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync mode</NICK>
+<BLURB>Behavior in sync-streams mode.</BLURB>
+<DEFAULT>Sync using the current active segment</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstInputSelector::sync-streams</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync Streams</NICK>
+<BLURB>Synchronize inactive streams to the running time of the active stream or to the current clock.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::check-imperfect-offset</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Check for discontiguous offset</NICK>
+<BLURB>Send element messages if offset and offset_end do not match up.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::check-imperfect-timestamp</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Check for discontiguous timestamps</NICK>
+<BLURB>Send element messages if timestamps and durations do not match up.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::datarate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Datarate</NICK>
+<BLURB>(Re)timestamps buffers with number of bytes per second (0 = inactive).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::drop-probability</NAME>
+<TYPE>gfloat</TYPE>
+<RANGE>[0,1]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Drop Probability</NICK>
+<BLURB>The Probability a buffer is dropped.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::dump</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Dump</NICK>
+<BLURB>Dump buffer contents to stdout.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::error-after</NAME>
+<TYPE>gint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Error After</NICK>
+<BLURB>Error after N buffers.</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::last-message</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>last-message</NICK>
+<BLURB>last-message.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::signal-handoffs</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Signal handoffs</NICK>
+<BLURB>Send a signal before pushing the buffer.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::silent</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>silent</NICK>
+<BLURB>silent.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::single-segment</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Single Segment</NICK>
+<BLURB>Timestamp buffers and eat segments so as to appear as one segment.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::sleep-time</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sleep time</NICK>
+<BLURB>Microseconds to sleep between processing.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstIdentity::sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Synchronize</NICK>
+<BLURB>Synchronize to pipeline clock.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFileSrc::location</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>File Location</NICK>
+<BLURB>Location of the file to read.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFileSink::append</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Append</NICK>
+<BLURB>Append to an already existing file.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFileSink::buffer-mode</NAME>
+<TYPE>GstFileSinkBufferMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Buffering mode</NICK>
+<BLURB>The buffering mode to use.</BLURB>
+<DEFAULT>Default buffering</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFileSink::buffer-size</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Buffering size</NICK>
+<BLURB>Size of buffer in number of bytes for line or full buffer-mode.</BLURB>
+<DEFAULT>65536</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFileSink::location</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>File Location</NICK>
+<BLURB>Location of the file to write.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFdSrc::fd</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>fd</NICK>
+<BLURB>An open file descriptor to read from.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFdSrc::timeout</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Timeout</NICK>
+<BLURB>Post a message after timeout microseconds (0 = disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstFdSink::fd</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>fd</NICK>
+<BLURB>An open file descriptor to write to.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstFakeSrc::can-activate-pull</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -89,6 +799,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstFakeSrc::format</NAME>
+<TYPE>GstFormat</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Format</NICK>
+<BLURB>The format of the segment events.</BLURB>
+<DEFAULT>GST_FORMAT_BYTES</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstFakeSrc::is-live</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -189,16 +909,6 @@
 </ARG>
 
 <ARG>
-<NAME>GstFakeSrc::format</NAME>
-<TYPE>GstFormat</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Format</NICK>
-<BLURB>The format of the segment events.</BLURB>
-<DEFAULT>GST_FORMAT_BYTES</DEFAULT>
-</ARG>
-
-<ARG>
 <NAME>GstFakeSink::can-activate-pull</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -239,6 +949,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstFakeSink::num-buffers</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>num-buffers</NICK>
+<BLURB>Number of buffers to accept going EOS.</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstFakeSink::signal-handoffs</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -269,842 +989,12 @@
 </ARG>
 
 <ARG>
-<NAME>GstFakeSink::num-buffers</NAME>
-<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>num-buffers</NICK>
-<BLURB>Number of buffers to accept going EOS.</BLURB>
-<DEFAULT>-1</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFdSrc::fd</NAME>
-<TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>fd</NICK>
-<BLURB>An open file descriptor to read from.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFdSrc::timeout</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Timeout</NICK>
-<BLURB>Post a message after timeout microseconds (0 = disabled).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSrc::fd</NAME>
-<TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
-<FLAGS>r</FLAGS>
-<NICK>File-descriptor</NICK>
-<BLURB>File-descriptor for the file being mmap()d.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSrc::location</NAME>
-<TYPE>gchar*</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>File Location</NICK>
-<BLURB>Location of the file to read.</BLURB>
-<DEFAULT>NULL</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSrc::mmapsize</NAME>
-<TYPE>gulong</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>mmap() Block Size</NICK>
-<BLURB>Size in bytes of mmap()d regions.</BLURB>
-<DEFAULT></DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSrc::touch</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Touch mapped region read data</NICK>
-<BLURB>Touch mmapped data regions to force them to be read from disk.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSrc::use-mmap</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Use mmap to read data</NICK>
-<BLURB>Whether to use mmap() instead of read().</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSrc::sequential</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Optimise for sequential mmap access</NICK>
-<BLURB>Whether to use madvise to hint to the kernel that access to mmap pages will be sequential.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::check-perfect</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Check For Perfect Stream</NICK>
-<BLURB>Verify that the stream is time- and data-contiguous. This only logs in the debug log.  This will be deprecated in favor of the check-imperfect-timestamp/offset properties.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::datarate</NAME>
-<TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Datarate</NICK>
-<BLURB>(Re)timestamps buffers with number of bytes per second (0 = inactive).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::drop-probability</NAME>
-<TYPE>gfloat</TYPE>
-<RANGE>[0,1]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Drop Probability</NICK>
-<BLURB>The Probability a buffer is dropped.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::dump</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Dump</NICK>
-<BLURB>Dump buffer contents to stdout.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::error-after</NAME>
-<TYPE>gint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Error After</NICK>
-<BLURB>Error after N buffers.</BLURB>
-<DEFAULT>-1</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::last-message</NAME>
-<TYPE>gchar*</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>last-message</NICK>
-<BLURB>last-message.</BLURB>
-<DEFAULT>NULL</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::silent</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>silent</NICK>
-<BLURB>silent.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::single-segment</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Single Segment</NICK>
-<BLURB>Timestamp buffers and eat segments so as to appear as one segment.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::sleep-time</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Sleep time</NICK>
-<BLURB>Microseconds to sleep between processing.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::sync</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Synchronize</NICK>
-<BLURB>Synchronize to pipeline clock.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::check-imperfect-offset</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Check for discontiguous offset</NICK>
-<BLURB>Send element messages if offset and offset_end do not match up.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::check-imperfect-timestamp</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Check for discontiguous timestamps</NICK>
-<BLURB>Send element messages if timestamps and durations do not match up.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstIdentity::signal-handoffs</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Signal handoffs</NICK>
-<BLURB>Send a signal before pushing the buffer.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::current-level-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Current level (buffers)</NICK>
-<BLURB>Current number of buffers in the queue.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::current-level-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Current level (kB)</NICK>
-<BLURB>Current amount of data in the queue (bytes).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::current-level-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Current level (ns)</NICK>
-<BLURB>Current amount of data in the queue (in ns).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::leaky</NAME>
-<TYPE>GstQueueLeaky</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Leaky</NICK>
-<BLURB>Where the queue leaks, if at all.</BLURB>
-<DEFAULT>Not Leaky</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::max-size-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (buffers)</NICK>
-<BLURB>Max. number of buffers in the queue (0=disable).</BLURB>
-<DEFAULT>200</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::max-size-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (kB)</NICK>
-<BLURB>Max. amount of data in the queue (bytes, 0=disable).</BLURB>
-<DEFAULT>10485760</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::max-size-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (ns)</NICK>
-<BLURB>Max. amount of data in the queue (in ns, 0=disable).</BLURB>
-<DEFAULT>1000000000</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::min-threshold-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Min. threshold (buffers)</NICK>
-<BLURB>Min. number of buffers in the queue to allow reading (0=disable).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::min-threshold-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Min. threshold (kB)</NICK>
-<BLURB>Min. amount of data in the queue to allow reading (bytes, 0=disable).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::min-threshold-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Min. threshold (ns)</NICK>
-<BLURB>Min. amount of data in the queue to allow reading (in ns, 0=disable).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue::silent</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Silent</NICK>
-<BLURB>Don't emit queue signals.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSink::location</NAME>
-<TYPE>gchar*</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>File Location</NICK>
-<BLURB>Location of the file to write.</BLURB>
-<DEFAULT>NULL</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSink::buffer-mode</NAME>
-<TYPE>GstFileSinkBufferMode</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Buffering mode</NICK>
-<BLURB>The buffering mode to use.</BLURB>
-<DEFAULT>Default buffering</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSink::buffer-size</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Buffering size</NICK>
-<BLURB>Size of buffer in number of bytes for line or full buffer-mode.</BLURB>
-<DEFAULT>65536</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstFileSink::append</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Append</NICK>
-<BLURB>Append to an already existing file.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::has-chain</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rwx</FLAGS>
-<NICK>Has Chain</NICK>
-<BLURB>If the element can operate in push mode.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::has-sink-loop</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rwx</FLAGS>
-<NICK>Has Sink Loop</NICK>
-<BLURB>If the element should spawn a thread (unimplemented and deprecated).</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::last-message</NAME>
-<TYPE>gchar*</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Last Message</NICK>
-<BLURB>The message describing current status.</BLURB>
-<DEFAULT>NULL</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::num-src-pads</NAME>
-<TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Num Src Pads</NICK>
-<BLURB>The number of source pads.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::silent</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rwx</FLAGS>
-<NICK>Silent</NICK>
-<BLURB>Don't produce last_message events.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::pull-mode</NAME>
-<TYPE>GstTeePullMode</TYPE>
-<RANGE></RANGE>
-<FLAGS>rwx</FLAGS>
-<NICK>Pull mode</NICK>
-<BLURB>Behavior of tee in pull mode.</BLURB>
-<DEFAULT>Never activate in pull mode</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTee::alloc-pad</NAME>
-<TYPE>GstPad*</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Allocation Src Pad</NICK>
-<BLURB>The pad used for gst_pad_alloc_buffer.</BLURB>
-<DEFAULT></DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTypeFindElement::caps</NAME>
-<TYPE>GstCaps*</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>caps</NICK>
-<BLURB>detected capabilities in stream.</BLURB>
-<DEFAULT></DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTypeFindElement::maximum</NAME>
-<TYPE>guint</TYPE>
-<RANGE>[1,100]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>maximum</NICK>
-<BLURB>probability to stop typefinding (deprecated; non-functional).</BLURB>
-<DEFAULT>100</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTypeFindElement::minimum</NAME>
-<TYPE>guint</TYPE>
-<RANGE>[1,100]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>minimum</NICK>
-<BLURB>minimum probability required to accept caps.</BLURB>
-<DEFAULT>1</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstTypeFindElement::force-caps</NAME>
+<NAME>GstCapsFilter::caps</NAME>
 <TYPE>GstCaps*</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>force caps</NICK>
-<BLURB>force caps without doing a typefind.</BLURB>
+<NICK>Filter caps</NICK>
+<BLURB>Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.</BLURB>
 <DEFAULT></DEFAULT>
 </ARG>
 
-<ARG>
-<NAME>GstFdSink::fd</NAME>
-<TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>fd</NICK>
-<BLURB>An open file descriptor to write to.</BLURB>
-<DEFAULT>1</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::extra-size-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Extra Size (buffers)</NICK>
-<BLURB>Amount of buffers the queues can grow if one of them is empty (0=disable) (NOT IMPLEMENTED).</BLURB>
-<DEFAULT>5</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::extra-size-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Extra Size (kB)</NICK>
-<BLURB>Amount of data the queues can grow if one of them is empty (bytes, 0=disable) (NOT IMPLEMENTED).</BLURB>
-<DEFAULT>10485760</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::extra-size-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Extra Size (ns)</NICK>
-<BLURB>Amount of time the queues can grow if one of them is empty (in ns, 0=disable) (NOT IMPLEMENTED).</BLURB>
-<DEFAULT>3000000000</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::max-size-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (buffers)</NICK>
-<BLURB>Max. number of buffers in the queue (0=disable).</BLURB>
-<DEFAULT>5</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::max-size-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (kB)</NICK>
-<BLURB>Max. amount of data in the queue (bytes, 0=disable).</BLURB>
-<DEFAULT>10485760</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::max-size-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (ns)</NICK>
-<BLURB>Max. amount of data in the queue (in ns, 0=disable).</BLURB>
-<DEFAULT>2000000000</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::high-percent</NAME>
-<TYPE>gint</TYPE>
-<RANGE>[0,100]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>High percent</NICK>
-<BLURB>High threshold for buffering to finish.</BLURB>
-<DEFAULT>99</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::low-percent</NAME>
-<TYPE>gint</TYPE>
-<RANGE>[0,100]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Low percent</NICK>
-<BLURB>Low threshold for buffering to start.</BLURB>
-<DEFAULT>10</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::use-buffering</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Use buffering</NICK>
-<BLURB>Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstMultiQueue::sync-by-running-time</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Sync By Running Time</NICK>
-<BLURB>Synchronize deactivated or not-linked streams by running time.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstBin::async-handling</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Async Handling</NICK>
-<BLURB>The bin will handle Asynchronous state changes.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::current-level-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Current level (buffers)</NICK>
-<BLURB>Current number of buffers in the queue.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::current-level-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Current level (kB)</NICK>
-<BLURB>Current amount of data in the queue (bytes).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::current-level-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Current level (ns)</NICK>
-<BLURB>Current amount of data in the queue (in ns).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::high-percent</NAME>
-<TYPE>gint</TYPE>
-<RANGE>[0,100]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>High percent</NICK>
-<BLURB>High threshold for buffering to finish. Only used if use-buffering is True.</BLURB>
-<DEFAULT>99</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::low-percent</NAME>
-<TYPE>gint</TYPE>
-<RANGE>[0,100]</RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Low percent</NICK>
-<BLURB>Low threshold for buffering to start. Only used if use-buffering is True.</BLURB>
-<DEFAULT>10</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::max-size-buffers</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (buffers)</NICK>
-<BLURB>Max. number of buffers in the queue (0=disable).</BLURB>
-<DEFAULT>100</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::max-size-bytes</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (kB)</NICK>
-<BLURB>Max. amount of data in the queue (bytes, 0=disable).</BLURB>
-<DEFAULT>2097152</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::max-size-time</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. size (ns)</NICK>
-<BLURB>Max. amount of data in the queue (in ns, 0=disable).</BLURB>
-<DEFAULT>2000000000</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::temp-location</NAME>
-<TYPE>gchar*</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Temporary File Location</NICK>
-<BLURB>Location to store temporary files in (Only read this property, use temp-template to configure the name template).</BLURB>
-<DEFAULT>NULL</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::temp-template</NAME>
-<TYPE>gchar*</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Temporary File Template</NICK>
-<BLURB>File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled).</BLURB>
-<DEFAULT>NULL</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::use-buffering</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Use buffering</NICK>
-<BLURB>Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::use-rate-estimate</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Use Rate Estimate</NICK>
-<BLURB>Estimate the bitrate of the stream to calculate time level.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::temp-remove</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Remove the Temporary File</NICK>
-<BLURB>Remove the temp-location after use.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstQueue2::ring-buffer-max-size</NAME>
-<TYPE>guint64</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Max. ring buffer size (bytes)</NICK>
-<BLURB>Max. amount of data in the ring buffer (bytes, 0 = disabled).</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstValve::drop</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Drop buffers and events</NICK>
-<BLURB>Whether to drop buffers and events or let them through.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstOutputSelector::active-pad</NAME>
-<TYPE>GstPad*</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Active pad</NICK>
-<BLURB>Currently active src pad.</BLURB>
-<DEFAULT></DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstOutputSelector::resend-latest</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Resend latest buffer</NICK>
-<BLURB>Resend latest buffer after a switch to a new pad.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstOutputSelector::pad-negotiation-mode</NAME>
-<TYPE>GstOutputSelectorPadNegotiationMode</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Pad negotiation mode</NICK>
-<BLURB>The mode to be used for pad negotiation.</BLURB>
-<DEFAULT>All</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstInputSelector::active-pad</NAME>
-<TYPE>GstPad*</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Active pad</NICK>
-<BLURB>The currently active sink pad.</BLURB>
-<DEFAULT></DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstInputSelector::n-pads</NAME>
-<TYPE>guint</TYPE>
-<RANGE></RANGE>
-<FLAGS>r</FLAGS>
-<NICK>Number of Pads</NICK>
-<BLURB>The number of sink pads.</BLURB>
-<DEFAULT>0</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstInputSelector::select-all</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Select all mode</NICK>
-<BLURB>Forwards data from all input pads.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstInputSelector::sync-streams</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Sync Streams</NICK>
-<BLURB>Synchronize inactive streams to the running time of the active stream or to the current clock.</BLURB>
-<DEFAULT>TRUE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstInputSelector::cache-buffers</NAME>
-<TYPE>gboolean</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Cache Buffers</NICK>
-<BLURB>Cache buffers for active-pad.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
-</ARG>
-
-<ARG>
-<NAME>GstInputSelector::sync-mode</NAME>
-<TYPE>GstInputSelectorSyncMode</TYPE>
-<RANGE></RANGE>
-<FLAGS>rw</FLAGS>
-<NICK>Sync mode</NICK>
-<BLURB>Behavior in sync-streams mode.</BLURB>
-<DEFAULT>Sync using the current active segment</DEFAULT>
-</ARG>
-
diff --git a/docs/plugins/gstreamer-plugins.hierarchy b/docs/plugins/gstreamer-plugins.hierarchy
index 8e83253..f176114 100644
--- a/docs/plugins/gstreamer-plugins.hierarchy
+++ b/docs/plugins/gstreamer-plugins.hierarchy
@@ -2,7 +2,7 @@
   GInitiallyUnowned
     GstObject
       GstAllocator
-        GstDefaultAllocator
+        GstAllocatorSysmem
       GstBus
       GstClock
       GstControlBinding
diff --git a/docs/plugins/gstreamer-plugins.prerequisites b/docs/plugins/gstreamer-plugins.prerequisites
index d2115a0..a8d518a 100644
--- a/docs/plugins/gstreamer-plugins.prerequisites
+++ b/docs/plugins/gstreamer-plugins.prerequisites
@@ -1,2 +1 @@
 GstChildProxy GObject
-GstChildProxy GstObject
diff --git a/docs/plugins/gstreamer-plugins.signals b/docs/plugins/gstreamer-plugins.signals
index 636d2e1..99e36eb 100644
--- a/docs/plugins/gstreamer-plugins.signals
+++ b/docs/plugins/gstreamer-plugins.signals
@@ -1,24 +1,67 @@
 <SIGNAL>
-<NAME>GstBin::element-added</NAME>
+<NAME>GstTypeFindElement::have-type</NAME>
 <RETURNS>void</RETURNS>
 <FLAGS>f</FLAGS>
-GstBin *gstbin
-GstElement *arg1
+GstTypeFindElement *gsttypefindelement
+guint  arg1
+GstCaps *arg2
 </SIGNAL>
 
 <SIGNAL>
-<NAME>GstBin::element-removed</NAME>
+<NAME>GstQueue::overrun</NAME>
 <RETURNS>void</RETURNS>
 <FLAGS>f</FLAGS>
-GstBin *gstbin
-GstElement *arg1
+GstQueue *gstqueue
 </SIGNAL>
 
 <SIGNAL>
-<NAME>GstBin::do-latency</NAME>
-<RETURNS>gboolean</RETURNS>
+<NAME>GstQueue::pushing</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>f</FLAGS>
+GstQueue *gstqueue
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstQueue::running</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>f</FLAGS>
+GstQueue *gstqueue
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstQueue::underrun</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>f</FLAGS>
+GstQueue *gstqueue
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstMultiQueue::overrun</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>f</FLAGS>
+GstMultiQueue *gstmultiqueue
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstMultiQueue::underrun</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>f</FLAGS>
+GstMultiQueue *gstmultiqueue
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstInputSelector::block</NAME>
+<RETURNS>gint64</RETURNS>
+<FLAGS>la</FLAGS>
+GstInputSelector *gstinputselector
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstIdentity::handoff</NAME>
+<RETURNS>void</RETURNS>
 <FLAGS>l</FLAGS>
-GstBin *gstbin
+GstIdentity *gstidentity
+GstBuffer *arg1
 </SIGNAL>
 
 <SIGNAL>
@@ -48,79 +91,3 @@
 GstPad *arg2
 </SIGNAL>
 
-<SIGNAL>
-<NAME>GstIdentity::handoff</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>l</FLAGS>
-GstIdentity *gstidentity
-GstBuffer *arg1
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstQueue::overrun</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstQueue *gstqueue
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstQueue::running</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstQueue *gstqueue
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstQueue::underrun</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstQueue *gstqueue
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstQueue::pushing</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstQueue *gstqueue
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstTypeFindElement::have-type</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstTypeFindElement *gsttypefindelement
-guint  arg1
-GstCaps *arg2
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstMultiQueue::overrun</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstMultiQueue *gstmultiqueue
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstMultiQueue::underrun</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>f</FLAGS>
-GstMultiQueue *gstmultiqueue
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstInputSelector::block</NAME>
-<RETURNS>gint64</RETURNS>
-<FLAGS>la</FLAGS>
-GstInputSelector *gstinputselector
-</SIGNAL>
-
-<SIGNAL>
-<NAME>GstInputSelector::switch</NAME>
-<RETURNS>void</RETURNS>
-<FLAGS>l</FLAGS>
-GstInputSelector *gstinputselector
-GstPad *arg1
-gint64  arg2
-gint64  arg3
-</SIGNAL>
-
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 1652aed..5052061 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstreamer Elements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,9 +20,9 @@
 <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="idp2642528"></a>gstreamer Elements</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp182912"></a>gstreamer Elements</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-capsfilter.html">capsfilter</a></span><span class="refpurpose"> — Pass data without modification, limiting formats</span>
 </dt>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 79b0003..8b2ab65 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstreamer Plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -20,10 +20,10 @@
 <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="idp3983920"></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> GStreamer core elements</span>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp4012672"></a>gstreamer Plugins</h1></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose">GStreamer core elements</span>
 </dt></dl></div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gstreamer-plugins.devhelp2 b/docs/plugins/html/gstreamer-plugins-1.0.devhelp2
similarity index 90%
rename from docs/plugins/html/gstreamer-plugins.devhelp2
rename to docs/plugins/html/gstreamer-plugins-1.0.devhelp2
index f06c006..e518b45 100644
--- a/docs/plugins/html/gstreamer-plugins.devhelp2
+++ b/docs/plugins/html/gstreamer-plugins-1.0.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 1.0 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-1.0" version="2" language="c">
   <chapters>
     <sub name="gstreamer Elements" link="ch01.html">
       <sub name="capsfilter" link="gstreamer-plugins-capsfilter.html"/>
@@ -26,14 +26,14 @@
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp9303200"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp8553776"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp133600"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7666560"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp6347936"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp81680"/>
     <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#idp10466320"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp10469504"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp10476912"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp5045072"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp5047968"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp5055376"/>
     <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"/>
@@ -45,6 +45,7 @@
     <keyword type="property" name="The &quot;datarate&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--datarate"/>
     <keyword type="property" name="The &quot;dump&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--dump"/>
     <keyword type="property" name="The &quot;filltype&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--filltype"/>
+    <keyword type="property" name="The &quot;format&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--format"/>
     <keyword type="property" name="The &quot;is-live&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--is-live"/>
     <keyword type="property" name="The &quot;last-message&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--last-message"/>
     <keyword type="property" name="The &quot;parentsize&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--parentsize"/>
@@ -55,111 +56,103 @@
     <keyword type="property" name="The &quot;sizemin&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemin"/>
     <keyword type="property" name="The &quot;sizetype&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--sizetype"/>
     <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#idp6064272"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp7441200"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp7448736"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp9233600"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp9235920"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp9437216"/>
     <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"/>
     <keyword type="property" name="The &quot;can-activate-push&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-push"/>
     <keyword type="property" name="The &quot;dump&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--dump"/>
     <keyword type="property" name="The &quot;last-message&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--last-message"/>
+    <keyword type="property" name="The &quot;num-buffers&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers"/>
     <keyword type="property" name="The &quot;signal-handoffs&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--signal-handoffs"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--silent"/>
     <keyword type="property" name="The &quot;state-error&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--state-error"/>
-    <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#idp10038736"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp9686192"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp9217136"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp6943024"/>
     <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#idp8811984"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp8815136"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp8822592"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp5345808"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp5348672"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp6000224"/>
     <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#idp10016320"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp10018928"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10723728"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp7888896"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp6168016"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp5971808"/>
     <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"/>
-    <keyword type="property" name="The &quot;mmapsize&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--mmapsize"/>
-    <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#idp10058592"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp10061152"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp10068560"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp8940544"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp8942816"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp8950224"/>
     <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;append&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--append"/>
     <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#idp9898160"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp9354576"/>
+    <keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--location"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp5716912"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp8071488"/>
     <keyword type="struct" name="struct GstFunnel" link="gstreamer-plugins-funnel.html#GstFunnel-struct"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp11034240"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp11041696"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp9885728"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp9893184"/>
     <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;check-imperfect-offset&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-imperfect-offset"/>
+    <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;datarate&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--datarate"/>
     <keyword type="property" name="The &quot;drop-probability&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--drop-probability"/>
     <keyword type="property" name="The &quot;dump&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--dump"/>
     <keyword type="property" name="The &quot;error-after&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--error-after"/>
     <keyword type="property" name="The &quot;last-message&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--last-message"/>
+    <keyword type="property" name="The &quot;signal-handoffs&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--signal-handoffs"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--silent"/>
     <keyword type="property" name="The &quot;single-segment&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--single-segment"/>
     <keyword type="property" name="The &quot;sleep-time&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--sleep-time"/>
     <keyword type="property" name="The &quot;sync&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--sync"/>
-    <keyword type="property" name="The &quot;check-imperfect-offset&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-imperfect-offset"/>
-    <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#idp10844784"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp10852320"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp9052048"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp9059584"/>
     <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"/>
-    <keyword type="property" name="The &quot;select-all&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--select-all"/>
-    <keyword type="property" name="The &quot;sync-streams&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams"/>
     <keyword type="property" name="The &quot;cache-buffers&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--cache-buffers"/>
+    <keyword type="property" name="The &quot;n-pads&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads"/>
     <keyword type="property" name="The &quot;sync-mode&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode"/>
+    <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#idp6331200"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp11189504"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp11196960"/>
+    <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp10331488"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp10352992"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp10360448"/>
     <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"/>
     <keyword type="property" name="The &quot;extra-size-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time"/>
+    <keyword type="property" name="The &quot;high-percent&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--high-percent"/>
+    <keyword type="property" name="The &quot;low-percent&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--low-percent"/>
     <keyword type="property" name="The &quot;max-size-buffers&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-buffers"/>
     <keyword type="property" name="The &quot;max-size-bytes&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-bytes"/>
     <keyword type="property" name="The &quot;max-size-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time"/>
-    <keyword type="property" name="The &quot;high-percent&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--high-percent"/>
-    <keyword type="property" name="The &quot;low-percent&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--low-percent"/>
-    <keyword type="property" name="The &quot;use-buffering&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering"/>
     <keyword type="property" name="The &quot;sync-by-running-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time"/>
+    <keyword type="property" name="The &quot;use-buffering&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering"/>
     <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#idp10117472"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp7942336"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp6884992"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp9588000"/>
     <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#idp11420640"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp11428096"/>
+    <keyword type="property" name="The &quot;resend-latest&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp10597232"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp10604688"/>
     <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"/>
     <keyword type="property" name="The &quot;current-level-bytes&quot; property" link="gstreamer-plugins-queue.html#GstQueue--current-level-bytes"/>
     <keyword type="property" name="The &quot;current-level-time&quot; property" link="gstreamer-plugins-queue.html#GstQueue--current-level-time"/>
+    <keyword type="property" name="The &quot;flush-on-eos&quot; property" link="gstreamer-plugins-queue.html#GstQueue--flush-on-eos"/>
     <keyword type="property" name="The &quot;leaky&quot; property" link="gstreamer-plugins-queue.html#GstQueue--leaky"/>
     <keyword type="property" name="The &quot;max-size-buffers&quot; property" link="gstreamer-plugins-queue.html#GstQueue--max-size-buffers"/>
     <keyword type="property" name="The &quot;max-size-bytes&quot; property" link="gstreamer-plugins-queue.html#GstQueue--max-size-bytes"/>
@@ -169,11 +162,11 @@
     <keyword type="property" name="The &quot;min-threshold-time&quot; property" link="gstreamer-plugins-queue.html#GstQueue--min-threshold-time"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-queue.html#GstQueue--silent"/>
     <keyword type="signal" name="The &quot;overrun&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-overrun"/>
+    <keyword type="signal" name="The &quot;pushing&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-pushing"/>
     <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#idp11773184"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11780592"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp10517952"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp10525360"/>
     <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"/>
@@ -183,34 +176,32 @@
     <keyword type="property" name="The &quot;max-size-buffers&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--max-size-buffers"/>
     <keyword type="property" name="The &quot;max-size-bytes&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--max-size-bytes"/>
     <keyword type="property" name="The &quot;max-size-time&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--max-size-time"/>
+    <keyword type="property" name="The &quot;ring-buffer-max-size&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size"/>
     <keyword type="property" name="The &quot;temp-location&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-location"/>
+    <keyword type="property" name="The &quot;temp-remove&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-remove"/>
     <keyword type="property" name="The &quot;temp-template&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-template"/>
     <keyword type="property" name="The &quot;use-buffering&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--use-buffering"/>
     <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#idp9054480"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp9057200"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp12371632"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp10011744"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp10014192"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp10021600"/>
     <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;alloc-pad&quot; property" link="gstreamer-plugins-tee.html#GstTee--alloc-pad"/>
     <keyword type="property" name="The &quot;has-chain&quot; property" link="gstreamer-plugins-tee.html#GstTee--has-chain"/>
-    <keyword type="property" name="The &quot;has-sink-loop&quot; property" link="gstreamer-plugins-tee.html#GstTee--has-sink-loop"/>
     <keyword type="property" name="The &quot;last-message&quot; property" link="gstreamer-plugins-tee.html#GstTee--last-message"/>
     <keyword type="property" name="The &quot;num-src-pads&quot; property" link="gstreamer-plugins-tee.html#GstTee--num-src-pads"/>
-    <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#idp10818288"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp10825696"/>
+    <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-tee.html#GstTee--silent"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp6540528"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp7614896"/>
     <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="property" name="The &quot;minimum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum"/>
     <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#idp7575472"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp11965728"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp9804192"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp10088704"/>
     <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/gstreamer-plugins-capsfilter.html b/docs/plugins/html/gstreamer-plugins-capsfilter.html
index 1284c5f..b076b7e 100644
--- a/docs/plugins/html/gstreamer-plugins-capsfilter.html
+++ b/docs/plugins/html/gstreamer-plugins-capsfilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>capsfilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9303200"></a><h3>Example launch line</h3>
+<a name="idp7666560"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -88,9 +88,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8553776"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6347936"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -111,9 +114,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp133600"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp81680"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -133,8 +139,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesink.html b/docs/plugins/html/gstreamer-plugins-fakesink.html
index ac16235..57b82c8 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesink.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fakesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -65,10 +65,10 @@
   "<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-push" title='The "can-activate-push" property'>can-activate-push</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-fakesink.html#GstFakeSink--dump" title='The "dump" property'>dump</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-fakesink.html#GstFakeSink--last-message" title='The "last-message" property'>last-message</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
+  "<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers" title='The "num-buffers" property'>num-buffers</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-fakesink.html#GstFakeSink--signal-handoffs" title='The "signal-handoffs" property'>signal-handoffs</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-fakesink.html#GstFakeSink--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
   "<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink--state-error" title='The "state-error" property'>state-error</a>"              <a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSinkStateError" title="enum GstFakeSinkStateError"><span class="type">GstFakeSinkStateError</span></a>  : Read / Write
-  "<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers" title='The "num-buffers" property'>num-buffers</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">
@@ -86,7 +86,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6064272"></a><h3>Example launch line</h3>
+<a name="idp9233600"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,9 +104,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7441200"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9235920"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -127,9 +130,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7448736"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9437216"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -179,8 +185,11 @@
 <p>
 Possible state change errors for the state-error property.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="FAKE-SINK-STATE-ERROR-NONE:CAPS"></a><span class="term"><code class="literal">FAKE_SINK_STATE_ERROR_NONE</code></span></p></td>
@@ -252,6 +261,14 @@
 </div>
 <hr>
 <div class="refsect2">
+<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;= G_MAXULONG</p>
+<p>Default value: -1</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstFakeSink--signal-handoffs"></a><h3>The <code class="literal">"signal-handoffs"</code> property</h3>
 <pre class="programlisting">  "signal-handoffs"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>Send a signal before unreffing the buffer.</p>
@@ -271,14 +288,6 @@
 <p>Generate a state change error.</p>
 <p>Default value: No state change errors</p>
 </div>
-<hr>
-<div class="refsect2">
-<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;= G_MAXULONG</p>
-<p>Default value: -1</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-fakesink.signal-details"></a><h2>Signal Details</h2>
@@ -291,8 +300,11 @@
 <p>
 This signal gets emitted before unreffing the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>fakesink</code></em> :</span></p></td>
@@ -323,8 +335,11 @@
 <p>
 This signal gets emitted before unreffing the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>fakesink</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesrc.html b/docs/plugins/html/gstreamer-plugins-fakesrc.html
index d9627ac..ec0ed31 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fakesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -70,6 +70,7 @@
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--datarate" title='The "datarate" property'>datarate</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--dump" title='The "dump" property'>dump</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--filltype" title='The "filltype" property'>filltype</a>"                 <a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrcFillType" title="enum GstFakeSrcFillType"><span class="type">GstFakeSrcFillType</span></a>    : Read / Write
+  "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--format" title='The "format" property'>format</a>"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--is-live" title='The "is-live" property'>is-live</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-fakesrc.html#GstFakeSrc--last-message" title='The "last-message" property'>last-message</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--parentsize" title='The "parentsize" property'>parentsize</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
@@ -80,7 +81,6 @@
   "<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -102,7 +102,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10466320"></a><h3>Example launch line</h3>
+<a name="idp5045072"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -124,9 +124,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10469504"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5047968"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -147,9 +150,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10476912"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5055376"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -194,8 +200,11 @@
 <p>
 The different ways buffers are allocated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="FAKE-SRC-DATA-ALLOCATE:CAPS"></a><span class="term"><code class="literal">FAKE_SRC_DATA_ALLOCATE</code></span></p></td>
@@ -224,8 +233,11 @@
 <p>
 The different ways of filling the buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="FAKE-SRC-FILLTYPE-NOTHING:CAPS"></a><span class="term"><code class="literal">FAKE_SRC_FILLTYPE_NOTHING</code></span></p></td>
@@ -272,8 +284,11 @@
 <p>
 The different output types. Unused currently.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="FAKE-SRC-FIRST-LAST-LOOP:CAPS"></a><span class="term"><code class="literal">FAKE_SRC_FIRST_LAST_LOOP</code></span></p></td>
@@ -330,8 +345,11 @@
 <p>
 The different size of the allocated buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="FAKE-SRC-SIZETYPE-EMPTY:CAPS"></a><span class="term"><code class="literal">FAKE_SRC_SIZETYPE_EMPTY</code></span></p></td>
@@ -398,6 +416,15 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstFakeSrc--format"></a><h3>The <code class="literal">"format"</code> property</h3>
+<pre class="programlisting">  "format"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write</pre>
+<p>
+Set the format of the newsegment events to produce.
+</p>
+<p>Default value: GST_FORMAT_BYTES</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstFakeSrc--is-live"></a><h3>The <code class="literal">"is-live"</code> property</h3>
 <pre class="programlisting">  "is-live"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct</pre>
 <p>True if the element cannot produce data in PAUSED.</p>
@@ -469,15 +496,6 @@
 <p>Sync to the clock to the datarate.</p>
 <p>Default value: FALSE</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstFakeSrc--format"></a><h3>The <code class="literal">"format"</code> property</h3>
-<pre class="programlisting">  "format"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write</pre>
-<p>
-Set the format of the newsegment events to produce.
-</p>
-<p>Default value: GST_FORMAT_BYTES</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-fakesrc.signal-details"></a><h2>Signal Details</h2>
@@ -490,8 +508,11 @@
 <p>
 This signal gets emitted before sending the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>fakesrc</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsink.html b/docs/plugins/html/gstreamer-plugins-fdsink.html
index 8e3c4db..7551bb8 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsink.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fdsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -85,9 +85,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10038736"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9217136"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -108,9 +111,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9686192"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6943024"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsrc.html b/docs/plugins/html/gstreamer-plugins-fdsrc.html
index e52d59b..12a855f 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fdsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -87,7 +87,7 @@
 if no data was recieved in the given timeout.
 The message's structure contains one field:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
   <span class="type">guint64</span>
   <code class="classname">"timeout"</code>: the timeout in microseconds that
   expired when waiting for data.
@@ -97,7 +97,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8811984"></a><h3>Example launch line</h3>
+<a name="idp5345808"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -119,9 +119,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8815136"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5348672"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -142,9 +145,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8822592"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6000224"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-filesink.html b/docs/plugins/html/gstreamer-plugins-filesink.html
index f797f8e..38efb42 100644
--- a/docs/plugins/html/gstreamer-plugins-filesink.html
+++ b/docs/plugins/html/gstreamer-plugins-filesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>filesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -66,10 +66,10 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-filesink.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-filesink.html#GstFileSink--location" title='The "location" property'>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-filesink.html#GstFileSink--append" title='The "append" property'>append</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-filesink.html#GstFileSink--buffer-mode" title='The "buffer-mode" property'>buffer-mode</a>"              <span class="type">GstFileSinkBufferMode</span>  : Read / Write
   "<a class="link" href="gstreamer-plugins-filesink.html#GstFileSink--buffer-size" title='The "buffer-size" property'>buffer-size</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-filesink.html#GstFileSink--append" title='The "append" property'>append</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-filesink.html#GstFileSink--location" title='The "location" property'>location</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -80,7 +80,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10058592"></a><h3>Example launch line</h3>
+<a name="idp8940544"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,9 +98,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10061152"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8942816"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -121,9 +124,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10068560"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8950224"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -161,10 +167,12 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-filesink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GstFileSink--location"></a><h3>The <code class="literal">"location"</code> property</h3>
-<pre class="programlisting">  "location"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
-<p>Location of the file to write.</p>
-<p>Default value: NULL</p>
+<a name="GstFileSink--append"></a><h3>The <code class="literal">"append"</code> property</h3>
+<pre class="programlisting">  "append"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>
+Append to an already existing file.
+</p>
+<p>Default value: FALSE</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -182,12 +190,10 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstFileSink--append"></a><h3>The <code class="literal">"append"</code> property</h3>
-<pre class="programlisting">  "append"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Append to an already existing file.
-</p>
-<p>Default value: FALSE</p>
+<a name="GstFileSink--location"></a><h3>The <code class="literal">"location"</code> property</h3>
+<pre class="programlisting">  "location"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>Location of the file to write.</p>
+<p>Default value: NULL</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-filesrc.html b/docs/plugins/html/gstreamer-plugins-filesrc.html
index a10b27c..6b476e4 100644
--- a/docs/plugins/html/gstreamer-plugins-filesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-filesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>filesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -66,12 +66,7 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-filesrc.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-filesrc.html#GstFileSrc--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
   "<a class="link" href="gstreamer-plugins-filesrc.html#GstFileSrc--location" title='The "location" property'>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-filesrc.html#GstFileSrc--mmapsize" title='The "mmapsize" property'>mmapsize</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a>                : Read / Write
-  "<a class="link" href="gstreamer-plugins-filesrc.html#GstFileSrc--touch" title='The "touch" property'>touch</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-filesrc.html#GstFileSrc--use-mmap" title='The "use-mmap" property'>use-mmap</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-filesrc.html#GstFileSrc--sequential" title='The "sequential" property'>sequential</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>
 <div class="refsect1">
@@ -82,7 +77,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10016320"></a><h3>Example launch line</h3>
+<a name="idp7888896"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -100,9 +95,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10018928"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6168016"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -123,9 +121,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10723728"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5971808"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -163,46 +164,11 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-filesrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GstFileSrc--fd"></a><h3>The <code class="literal">"fd"</code> property</h3>
-<pre class="programlisting">  "fd"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read</pre>
-<p>File-descriptor for the file being mmap()d.</p>
-<p>Allowed values: &gt;= 0</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstFileSrc--location"></a><h3>The <code class="literal">"location"</code> property</h3>
 <pre class="programlisting">  "location"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
 <p>Location of the file to read.</p>
 <p>Default value: NULL</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstFileSrc--mmapsize"></a><h3>The <code class="literal">"mmapsize"</code> property</h3>
-<pre class="programlisting">  "mmapsize"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a>                : Read / Write</pre>
-<p>Size in bytes of mmap()d regions.</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstFileSrc--touch"></a><h3>The <code class="literal">"touch"</code> property</h3>
-<pre class="programlisting">  "touch"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Touch mmapped data regions to force them to be read from disk.</p>
-<p>Default value: TRUE</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstFileSrc--use-mmap"></a><h3>The <code class="literal">"use-mmap"</code> property</h3>
-<pre class="programlisting">  "use-mmap"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Whether to use mmap() instead of read().</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstFileSrc--sequential"></a><h3>The <code class="literal">"sequential"</code> property</h3>
-<pre class="programlisting">  "sequential"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Whether to use madvise to hint to the kernel that access to mmap pages will be sequential.</p>
-<p>Default value: FALSE</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-filesrc.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-funnel.html b/docs/plugins/html/gstreamer-plugins-funnel.html
index e82bdff..9c66787 100644
--- a/docs/plugins/html/gstreamer-plugins-funnel.html
+++ b/docs/plugins/html/gstreamer-plugins-funnel.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>funnel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -68,9 +68,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9898160"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5716912"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -91,9 +94,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9354576"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8071488"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -113,8 +119,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-identity.html b/docs/plugins/html/gstreamer-plugins-identity.html
index 9760987..95b9d2b 100644
--- a/docs/plugins/html/gstreamer-plugins-identity.html
+++ b/docs/plugins/html/gstreamer-plugins-identity.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>identity</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -60,19 +60,18 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-identity.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-identity.html#GstIdentity--check-perfect" title='The "check-perfect" property'>check-perfect</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-identity.html#GstIdentity--check-imperfect-offset" title='The "check-imperfect-offset" property'>check-imperfect-offset</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-identity.html#GstIdentity--check-imperfect-timestamp" title='The "check-imperfect-timestamp" property'>check-imperfect-timestamp</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-identity.html#GstIdentity--datarate" title='The "datarate" property'>datarate</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-identity.html#GstIdentity--drop-probability" title='The "drop-probability" property'>drop-probability</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a>                : Read / Write
   "<a class="link" href="gstreamer-plugins-identity.html#GstIdentity--dump" title='The "dump" property'>dump</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-identity.html#GstIdentity--error-after" title='The "error-after" property'>error-after</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-identity.html#GstIdentity--last-message" title='The "last-message" property'>last-message</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
+  "<a class="link" href="gstreamer-plugins-identity.html#GstIdentity--signal-handoffs" title='The "signal-handoffs" property'>signal-handoffs</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-identity.html#GstIdentity--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
   "<a class="link" href="gstreamer-plugins-identity.html#GstIdentity--single-segment" title='The "single-segment" property'>single-segment</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-identity.html#GstIdentity--sleep-time" title='The "sleep-time" property'>sleep-time</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-identity.html#GstIdentity--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-identity.html#GstIdentity--check-imperfect-offset" title='The "check-imperfect-offset" property'>check-imperfect-offset</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-identity.html#GstIdentity--check-imperfect-timestamp" title='The "check-imperfect-timestamp" property'>check-imperfect-timestamp</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-identity.html#GstIdentity--signal-handoffs" title='The "signal-handoffs" property'>signal-handoffs</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>
 <div class="refsect1">
@@ -90,9 +89,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11034240"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9885728"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -113,9 +115,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11041696"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9893184"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -135,8 +140,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -174,9 +182,16 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-identity.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GstIdentity--check-perfect"></a><h3>The <code class="literal">"check-perfect"</code> property</h3>
-<pre class="programlisting">  "check-perfect"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Verify that the stream is time- and data-contiguous. This only logs in the debug log.  This will be deprecated in favor of the check-imperfect-timestamp/offset properties.</p>
+<a name="GstIdentity--check-imperfect-offset"></a><h3>The <code class="literal">"check-imperfect-offset"</code> property</h3>
+<pre class="programlisting">  "check-imperfect-offset"   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Send element messages if offset and offset_end do not match up.</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstIdentity--check-imperfect-timestamp"></a><h3>The <code class="literal">"check-imperfect-timestamp"</code> property</h3>
+<pre class="programlisting">  "check-imperfect-timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Send element messages if timestamps and durations do not match up.</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
@@ -218,6 +233,16 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstIdentity--signal-handoffs"></a><h3>The <code class="literal">"signal-handoffs"</code> property</h3>
+<pre class="programlisting">  "signal-handoffs"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>
+If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, the identity will emit a handoff signal when handling a buffer.
+When set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, no signal will be emited, which might improve performance.
+</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
 <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>
@@ -244,30 +269,6 @@
 <p>Synchronize to pipeline clock.</p>
 <p>Default value: FALSE</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstIdentity--check-imperfect-offset"></a><h3>The <code class="literal">"check-imperfect-offset"</code> property</h3>
-<pre class="programlisting">  "check-imperfect-offset"   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Send element messages if offset and offset_end do not match up.</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIdentity--check-imperfect-timestamp"></a><h3>The <code class="literal">"check-imperfect-timestamp"</code> property</h3>
-<pre class="programlisting">  "check-imperfect-timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Send element messages if timestamps and durations do not match up.</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIdentity--signal-handoffs"></a><h3>The <code class="literal">"signal-handoffs"</code> property</h3>
-<pre class="programlisting">  "signal-handoffs"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, the identity will emit a handoff signal when handling a buffer.
-When set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, no signal will be emited, which might improve performance.
-</p>
-<p>Default value: TRUE</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-identity.signal-details"></a><h2>Signal Details</h2>
@@ -279,8 +280,11 @@
 <p>
 This signal gets emitted before passing the buffer downstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>identity</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-input-selector.html b/docs/plugins/html/gstreamer-plugins-input-selector.html
index e4f561f..064fba1 100644
--- a/docs/plugins/html/gstreamer-plugins-input-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-input-selector.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>input-selector</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -60,18 +60,16 @@
 <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--cache-buffers" title='The "cache-buffers" property'>cache-buffers</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--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--sync-mode" title='The "sync-mode" property'>sync-mode</a>"                <span class="type">GstInputSelectorSyncMode</span>  : 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
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-input-selector.signals"></a><h2>Signals</h2>
 <pre class="synopsis">
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector-block" title='The "block" signal'>block</a>"                                          : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a>
-  "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector-switch" title='The "switch" signal'>switch</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">
@@ -85,7 +83,7 @@
 </p>
 <p>
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 "running-time": Running time of stream on pad (<span class="type">gint64</span>)
 </li>
@@ -105,9 +103,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10844784"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9052048"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -128,9 +129,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10852320"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9059584"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -150,8 +154,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -194,35 +201,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstInputSelector--n-pads"></a><h3>The <code class="literal">"n-pads"</code> property</h3>
-<pre class="programlisting">  "n-pads"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read</pre>
-<p>The number of sink pads.</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstInputSelector--select-all"></a><h3>The <code class="literal">"select-all"</code> property</h3>
-<pre class="programlisting">  "select-all"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Forwards data from all input pads.</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstInputSelector--sync-streams"></a><h3>The <code class="literal">"sync-streams"</code> property</h3>
-<pre class="programlisting">  "sync-streams"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<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> all inactive streams will be synced to the
-running time of the active stream or to the current clock.
-</p>
-<p>
-To make sure no buffers are dropped by input-selector
-that might be needed when switching the active pad,
-sync-mode should be set to "clock" and cache-buffers to TRUE.
-</p>
-<p>Default value: TRUE</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstInputSelector--cache-buffers"></a><h3>The <code class="literal">"cache-buffers"</code> property</h3>
 <pre class="programlisting">  "cache-buffers"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>
@@ -240,6 +218,13 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstInputSelector--n-pads"></a><h3>The <code class="literal">"n-pads"</code> property</h3>
+<pre class="programlisting">  "n-pads"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read</pre>
+<p>The number of sink pads.</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstInputSelector--sync-mode"></a><h3>The <code class="literal">"sync-mode"</code> property</h3>
 <pre class="programlisting">  "sync-mode"                <span class="type">GstInputSelectorSyncMode</span>  : Read / Write</pre>
 <p>
@@ -253,6 +238,21 @@
 </p>
 <p>Default value: Sync using the current active segment</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstInputSelector--sync-streams"></a><h3>The <code class="literal">"sync-streams"</code> property</h3>
+<pre class="programlisting">  "sync-streams"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<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> all inactive streams will be synced to the
+running time of the active stream or to the current clock.
+</p>
+<p>
+To make sure no buffers are dropped by input-selector
+that might be needed when switching the active pad,
+sync-mode should be set to "clock" and cache-buffers to TRUE.
+</p>
+<p>Default value: TRUE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-input-selector.signal-details"></a><h2>Signal Details</h2>
@@ -265,8 +265,11 @@
 the current switch segment, as a running time, or 0 if there is no current
 active pad or the current active pad never received data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>inputselector</code></em> :</span></p></td>
@@ -280,30 +283,6 @@
 </tbody>
 </table></div>
 </div>
-<hr>
-<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>gstinputselector</code></em> :</span></p></td>
-<td>the object which received the signal.</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="gstreamer-plugins-input-selector.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-multiqueue.html b/docs/plugins/html/gstreamer-plugins-multiqueue.html
index 086335c..ef0a35c 100644
--- a/docs/plugins/html/gstreamer-plugins-multiqueue.html
+++ b/docs/plugins/html/gstreamer-plugins-multiqueue.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multiqueue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -62,13 +62,13 @@
   "<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>"          <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--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>"            <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
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time" title='The "sync-by-running-time" property'>sync-by-running-time</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-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
 </pre>
 </div>
 <div class="refsect1">
@@ -83,14 +83,14 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6331200"></a><p>
+<a name="idp10331488"></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>
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Multiple streamhandling</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem">
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
 <p>
     The element handles queueing data on more than one stream at once. To
     achieve such a feature it has request sink pads (sink%d) and
@@ -105,7 +105,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Non-starvation on multiple streams</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem">
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
 <p>
     If more than one stream is used with the element, the streams' queues
     will be dynamically grown (up to a limit), in order to ensure that no
@@ -121,7 +121,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Non-linked srcpads graceful handling</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem">
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
 <p>
     In order to better support dynamic switching between streams, the multiqueue
     (unlike the current GStreamer queue) continues to push buffers on non-linked
@@ -173,9 +173,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11189504"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10352992"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -196,9 +199,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11196960"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10360448"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -218,8 +224,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -278,6 +287,26 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstMultiQueue--high-percent"></a><h3>The <code class="literal">"high-percent"</code> property</h3>
+<pre class="programlisting">  "high-percent"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>
+High threshold percent for buffering to finish.
+</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 99</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiQueue--low-percent"></a><h3>The <code class="literal">"low-percent"</code> property</h3>
+<pre class="programlisting">  "low-percent"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>
+Low threshold percent for buffering to start.
+</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 10</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstMultiQueue--max-size-buffers"></a><h3>The <code class="literal">"max-size-buffers"</code> property</h3>
 <pre class="programlisting">  "max-size-buffers"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
 <p>Max. number of buffers in the queue (0=disable).</p>
@@ -299,36 +328,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMultiQueue--high-percent"></a><h3>The <code class="literal">"high-percent"</code> property</h3>
-<pre class="programlisting">  "high-percent"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>
-High threshold percent for buffering to finish.
-</p>
-<p>Allowed values: [0,100]</p>
-<p>Default value: 99</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMultiQueue--low-percent"></a><h3>The <code class="literal">"low-percent"</code> property</h3>
-<pre class="programlisting">  "low-percent"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>
-Low threshold percent for buffering to start.
-</p>
-<p>Allowed values: [0,100]</p>
-<p>Default value: 10</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMultiQueue--use-buffering"></a><h3>The <code class="literal">"use-buffering"</code> property</h3>
-<pre class="programlisting">  "use-buffering"            <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 buffering option in multiqueue so that BUFFERING messages are
-emited based on low-/high-percent thresholds.
-</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMultiQueue--sync-by-running-time"></a><h3>The <code class="literal">"sync-by-running-time"</code> property</h3>
 <pre class="programlisting">  "sync-by-running-time"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>
@@ -340,6 +339,16 @@
 </p>
 <p>Default value: FALSE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiQueue--use-buffering"></a><h3>The <code class="literal">"use-buffering"</code> property</h3>
+<pre class="programlisting">  "use-buffering"            <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 buffering option in multiqueue so that BUFFERING messages are
+emited based on low-/high-percent thresholds.
+</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-multiqueue.signal-details"></a><h2>Signal Details</h2>
@@ -356,8 +365,11 @@
 <p>
 This can be used as an indicator of pre-roll.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>multiqueue</code></em> :</span></p></td>
@@ -382,8 +394,11 @@
 <p>
 This indicates either starvation or EOS from the upstream data sources.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>multiqueue</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-output-selector.html b/docs/plugins/html/gstreamer-plugins-output-selector.html
index eef5eab..50b01de 100644
--- a/docs/plugins/html/gstreamer-plugins-output-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-output-selector.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>output-selector</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -58,8 +58,8 @@
 <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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
+  "<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
 </pre>
 </div>
 <div class="refsect1">
@@ -70,9 +70,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10117472"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6884992"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -93,9 +96,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7942336"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9588000"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -115,8 +121,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -159,18 +168,18 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstOutputSelector--resend-latest"></a><h3>The <code class="literal">"resend-latest"</code> property</h3>
-<pre class="programlisting">  "resend-latest"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Resend latest buffer after a switch to a new pad.</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstOutputSelector--pad-negotiation-mode"></a><h3>The <code class="literal">"pad-negotiation-mode"</code> property</h3>
 <pre class="programlisting">  "pad-negotiation-mode"     <span class="type">GstOutputSelectorPadNegotiationMode</span>  : Read / Write</pre>
 <p>The mode to be used for pad negotiation.</p>
 <p>Default value: All</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstOutputSelector--resend-latest"></a><h3>The <code class="literal">"resend-latest"</code> property</h3>
+<pre class="programlisting">  "resend-latest"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Resend latest buffer after a switch to a new pad.</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-output-selector.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index 529882b..b2126fc 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>coreelements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -23,14 +23,17 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle">coreelements</span></h2>
-<p>coreelements — <a name="plugin-coreelements"></a> GStreamer core elements</p>
+<p>coreelements — <a name="plugin-coreelements"></a>GStreamer core elements</p>
 </td>
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5968112"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp2843232"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -38,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -56,9 +59,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6914752"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp7797440"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-plugins-capsfilter.html" title="capsfilter">capsfilter</a></span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-queue.html b/docs/plugins/html/gstreamer-plugins-queue.html
index 1285631..0aac199 100644
--- a/docs/plugins/html/gstreamer-plugins-queue.html
+++ b/docs/plugins/html/gstreamer-plugins-queue.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>queue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -63,6 +63,7 @@
   "<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>"       <span class="type">guint64</span>               : Read
+  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--flush-on-eos" title='The "flush-on-eos" property'>flush-on-eos</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-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
@@ -77,9 +78,9 @@
 <a name="gstreamer-plugins-queue.signals"></a><h2>Signals</h2>
 <pre class="synopsis">
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue-overrun" title='The "overrun" signal'>overrun</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
+  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue-pushing" title='The "pushing" signal'>pushing</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue-running" title='The "running" signal'>running</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue-underrun" title='The "underrun" signal'>underrun</a>"                                       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
-  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue-pushing" title='The "pushing" signal'>pushing</a>"                                        : <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>
 </div>
 <div class="refsect1">
@@ -122,9 +123,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11420640"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10597232"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -145,9 +149,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11428096"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10604688"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -167,8 +174,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -214,8 +224,11 @@
 <p>
 Buffer dropping scheme to avoid the queue to block when full.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-QUEUE-NO-LEAK:CAPS"></a><span class="term"><code class="literal">GST_QUEUE_NO_LEAK</code></span></p></td>
@@ -260,6 +273,25 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstQueue--flush-on-eos"></a><h3>The <code class="literal">"flush-on-eos"</code> property</h3>
+<pre class="programlisting">  "flush-on-eos"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>
+Discard all data in the queue when an EOS event is received, and pass
+on the EOS event as soon as possible (instead of waiting until all
+buffers in the queue have been processed, which is the default behaviour).
+</p>
+<p>
+Flushing the queue on EOS might be useful when capturing and encoding
+from a live source, to finish up the recording quickly in cases when
+the encoder is slow. Note that this might mean some data from the end of
+the recoding data might be lost though (never more than the configured
+max. sizes though).
+</p>
+<p>Default value: FALSE</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstQueue--leaky"></a><h3>The <code class="literal">"leaky"</code> property</h3>
 <pre class="programlisting">  "leaky"                    <a class="link" href="gstreamer-plugins-queue.html#GstQueueLeaky" title="enum GstQueueLeaky"><span class="type">GstQueueLeaky</span></a>         : Read / Write</pre>
 <p>Where the queue leaks, if at all.</p>
@@ -330,8 +362,37 @@
 size) is higher than the boundary values which can be set through the
 GObject properties.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
+<td>the queue instance</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>
+<hr>
+<div class="refsect2">
+<a name="GstQueue-pushing"></a><h3>The <code class="literal">"pushing"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a> *queue,
+                                                        <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>
+Reports when the queue has enough data to start pushing data again on the
+source pad.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
@@ -354,8 +415,11 @@
 together with the underrun signal to pause the pipeline on underrun and
 wait for the queue to fill-up before resume playback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
@@ -379,31 +443,11 @@
 size) is lower than the boundary values which can be set through the
 GObject properties.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>the queue instance</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>
-<hr>
-<div class="refsect2">
-<a name="GstQueue-pushing"></a><h3>The <code class="literal">"pushing"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a> *queue,
-                                                        <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>
-Reports when the queue has enough data to start pushing data again on the
-source pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-queue2.html b/docs/plugins/html/gstreamer-plugins-queue2.html
index 140e17b..f0e6c99 100644
--- a/docs/plugins/html/gstreamer-plugins-queue2.html
+++ b/docs/plugins/html/gstreamer-plugins-queue2.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>queue2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -65,12 +65,12 @@
   "<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>"            <span class="type">guint64</span>               : 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
   "<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
+  "<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--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>"     <span class="type">guint64</span>               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -110,9 +110,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11773184"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10517952"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -133,9 +136,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11780592"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10525360"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -155,8 +161,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -251,6 +260,16 @@
 </div>
 <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"     <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.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstQueue2--temp-location"></a><h3>The <code class="literal">"temp-location"</code> property</h3>
 <pre class="programlisting">  "temp-location"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read</pre>
 <p>Location to store temporary files in (Only read this property, use temp-template to configure the name template).</p>
@@ -258,6 +277,15 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstQueue2--temp-remove"></a><h3>The <code class="literal">"temp-remove"</code> property</h3>
+<pre class="programlisting">  "temp-remove"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>
+When temp-template is set, remove the temporary file when going to READY.
+</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstQueue2--temp-template"></a><h3>The <code class="literal">"temp-template"</code> property</h3>
 <pre class="programlisting">  "temp-template"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
 <p>File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled).</p>
@@ -277,25 +305,6 @@
 <p>Estimate the bitrate of the stream to calculate time level.</p>
 <p>Default value: TRUE</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstQueue2--temp-remove"></a><h3>The <code class="literal">"temp-remove"</code> property</h3>
-<pre class="programlisting">  "temp-remove"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-When temp-template is set, remove the temporary file when going to READY.
-</p>
-<p>Default value: TRUE</p>
-</div>
-<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"     <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.
-</p>
-<p>Default value: 0</p>
-</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gstreamer-plugins-tee.html b/docs/plugins/html/gstreamer-plugins-tee.html
index 08c096a..39f1de5 100644
--- a/docs/plugins/html/gstreamer-plugins-tee.html
+++ b/docs/plugins/html/gstreamer-plugins-tee.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tee</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -58,13 +58,12 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-tee.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
+  "<a class="link" href="gstreamer-plugins-tee.html#GstTee--alloc-pad" title='The "alloc-pad" property'>alloc-pad</a>"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--has-chain" title='The "has-chain" property'>has-chain</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--has-sink-loop" title='The "has-sink-loop" property'>has-sink-loop</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--last-message" title='The "last-message" property'>last-message</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
   "<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<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
 </pre>
 </div>
 <div class="refsect1">
@@ -83,7 +82,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9054480"></a><h3>Example launch line</h3>
+<a name="idp10011744"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,9 +101,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9057200"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10014192"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,9 +127,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12371632"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10021600"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -147,8 +152,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -194,8 +202,11 @@
 The different ways that tee can behave in pull mode. <em class="parameter"><code>TEE_PULL_MODE_NEVER</code></em>
 disables pull mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TEE-PULL-MODE-NEVER:CAPS"></a><span class="term"><code class="literal">GST_TEE_PULL_MODE_NEVER</code></span></p></td>
@@ -214,6 +225,12 @@
 <div class="refsect1">
 <a name="gstreamer-plugins-tee.property-details"></a><h2>Property Details</h2>
 <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<p>The pad ALLOCATION queries will be proxied to (unused).</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstTee--has-chain"></a><h3>The <code class="literal">"has-chain"</code> property</h3>
 <pre class="programlisting">  "has-chain"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct</pre>
 <p>If the element can operate in push mode.</p>
@@ -221,13 +238,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTee--has-sink-loop"></a><h3>The <code class="literal">"has-sink-loop"</code> property</h3>
-<pre class="programlisting">  "has-sink-loop"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct</pre>
-<p>If the element should spawn a thread (unimplemented and deprecated).</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstTee--last-message"></a><h3>The <code class="literal">"last-message"</code> property</h3>
 <pre class="programlisting">  "last-message"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read</pre>
 <p>The message describing current status.</p>
@@ -243,13 +253,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTee--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 / Construct</pre>
-<p>Don't produce last_message events.</p>
-<p>Default value: TRUE</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstTee--pull-mode"></a><h3>The <code class="literal">"pull-mode"</code> property</h3>
 <pre class="programlisting">  "pull-mode"                <a class="link" href="gstreamer-plugins-tee.html#GstTeePullMode" title="enum GstTeePullMode"><span class="type">GstTeePullMode</span></a>        : Read / Write / Construct</pre>
 <p>Behavior of tee in pull mode.</p>
@@ -257,9 +260,10 @@
 </div>
 <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
-<p>The pad used for gst_pad_alloc_buffer.</p>
+<a name="GstTee--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 / Construct</pre>
+<p>Don't produce last_message events.</p>
+<p>Default value: TRUE</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-typefind.html b/docs/plugins/html/gstreamer-plugins-typefind.html
index 7bb2c06..52d58bf 100644
--- a/docs/plugins/html/gstreamer-plugins-typefind.html
+++ b/docs/plugins/html/gstreamer-plugins-typefind.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>typefind</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -60,9 +60,8 @@
 <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</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
 </pre>
 </div>
 <div class="refsect1">
@@ -90,9 +89,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10818288"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6540528"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -113,9 +115,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10825696"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7614896"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -135,8 +140,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -180,11 +188,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTypeFindElement--maximum"></a><h3>The <code class="literal">"maximum"</code> property</h3>
-<pre class="programlisting">  "maximum"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
-<p>probability to stop typefinding (deprecated; non-functional).</p>
-<p>Allowed values: [1,100]</p>
-<p>Default value: 100</p>
+<a name="GstTypeFindElement--force-caps"></a><h3>The <code class="literal">"force-caps"</code> property</h3>
+<pre class="programlisting">  "force-caps"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
+<p>force caps without doing a typefind.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -194,12 +200,6 @@
 <p>Allowed values: [1,100]</p>
 <p>Default value: 1</p>
 </div>
-<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
-<p>force caps without doing a typefind.</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-typefind.signal-details"></a><h2>Signal Details</h2>
@@ -213,8 +213,11 @@
 This signal gets emitted when the type and its probability has
 been found.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>typefind</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-valve.html b/docs/plugins/html/gstreamer-plugins-valve.html
index bc534e3..78bfdb3 100644
--- a/docs/plugins/html/gstreamer-plugins-valve.html
+++ b/docs/plugins/html/gstreamer-plugins-valve.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>valve</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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">
@@ -81,9 +81,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7575472"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9804192"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -104,9 +107,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11965728"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10088704"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -126,8 +132,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 29648cf..c01f266 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Core Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.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)">
@@ -15,14 +15,14 @@
 <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 1.0 (1.0.8)
+      for GStreamer Core Plugins 1.0 (1.1.2)
       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>
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="chapter"><a href="ch01.html">gstreamer Elements</a></span></dt>
 <dd><dl>
 <dt>
@@ -79,7 +79,7 @@
 </dl></dd>
 <dt><span class="chapter"><a href="ch02.html">gstreamer Plugins</a></span></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> GStreamer core elements</span>
+<span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose">GStreamer core elements</span>
 </dt></dl></dd>
 </dl></div>
 </div>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 01b5927..3045da9 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -47,6 +47,7 @@
 <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--format" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--format">
 <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">
@@ -57,7 +58,6 @@
 <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">
@@ -83,10 +83,10 @@
 <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--num-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers">
 <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">
@@ -126,12 +126,7 @@
 <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">
@@ -143,10 +138,10 @@
 <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--append" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink--append">
 <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="GstFileSink--location" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink--location">
 <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">
@@ -165,19 +160,18 @@
 <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--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--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--signal-handoffs" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--signal-handoffs">
 <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">
@@ -191,14 +185,12 @@
 <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="GstInputSelector--cache-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--cache-buffers">
+<ANCHOR id="GstInputSelector--n-pads" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--n-pads">
 <ANCHOR id="GstInputSelector--sync-mode" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode">
+<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">
@@ -213,13 +205,13 @@
 <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--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--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="GstMultiQueue--use-buffering" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering">
 <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">
@@ -234,8 +226,8 @@
 <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="GstOutputSelector--resend-latest" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest">
 <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">
@@ -254,6 +246,7 @@
 <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--flush-on-eos" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--flush-on-eos">
 <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">
@@ -264,9 +257,9 @@
 <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-pushing" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue-pushing">
 <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">
@@ -284,12 +277,12 @@
 <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--ring-buffer-max-size" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size">
 <ANCHOR id="GstQueue2--temp-location" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--temp-location">
+<ANCHOR id="GstQueue2--temp-remove" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--temp-remove">
 <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">
@@ -302,13 +295,12 @@
 <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--alloc-pad" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--alloc-pad">
 <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="GstTee--silent" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--silent">
 <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">
@@ -321,9 +313,8 @@
 <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="GstTypeFindElement--minimum" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement--minimum">
 <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">
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index df9d146..98bd5df 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -1,9 +1,9 @@
 <plugin>
   <name>coreelements</name>
-  <description> GStreamer core elements</description>
+  <description>GStreamer core elements</description>
   <filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
   <basename>libgstcoreelements.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gstreamer</source>
   <package>GStreamer source release</package>
diff --git a/docs/pwg/Makefile.in b/docs/pwg/Makefile.in
index 98c9797..6a8c025 100644
--- a/docs/pwg/Makefile.in
+++ b/docs/pwg/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +37,51 @@
 # install directory trees :(
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -74,9 +101,10 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/../htmlinstall.mak $(srcdir)/../manuals.mak \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(srcdir)/../manuals.mak \
+	$(top_srcdir)/common/upload-doc.mak \
+	$(srcdir)/../htmlinstall.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/pwg
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -84,7 +112,6 @@
 	$(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 \
@@ -108,24 +135,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -162,6 +197,7 @@
   }
 am__installdirs = "$(DESTDIR)$(pwgdir)"
 DATA = $(pwg_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -261,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -279,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -291,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -353,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -582,11 +614,11 @@
 	@list='$(pwg_DATA)'; test -n "$(pwgdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(pwgdir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -720,17 +752,18 @@
 .MAKE: check-am install-am install-strip
 
 .PHONY: all all-am all-local check check-am check-local clean \
-	clean-generic clean-libtool clean-local distclean \
-	distclean-generic distclean-libtool distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-data-local 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-ps install-ps-am install-pwgDATA \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-local uninstall-pwgDATA
+	clean-generic clean-libtool clean-local cscopelist-am ctags-am \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local 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-ps install-ps-am \
+	install-pwgDATA install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-local \
+	uninstall-pwgDATA
 
 
 ### generate all documentation by default
@@ -770,20 +803,12 @@
 	cp ../version.entities $(BUILDDIR) ; \
 	cp $(top_srcdir)/docs/url.entities $(BUILDDIR)
 
-# we should switch to xsltproc
-# docbook2html aka jade can't add the encoding easily to the html meta
-# (but we are lazy and just abuse sed to add it)
-# jw -f docbook -b html -d pwg.dsl -o ../html -V '%use-id-as-filename%' $(MAIN)
-# this is a starting point
-# xsltproc --nonet /usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl pwg.xml
-# 
 html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
 	@$(MAKE) check-local
 	@echo "*** Generating HTML output ***"
 	@-mkdir -p html
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	@cd $(BUILDDIR) && SP_ENCODING="UTF-8" docbook2html -o ../html -V '%use-id-as-filename%' $(MAIN)
-	@$(SED) -i -e 's/\(^CONTENT.*\)\(.>\)/\1;charset=UTF-8\2/' html/*html
+	@cd $(BUILDDIR) && $(XSLTPROC) -o ../html/ --stringparam chunker.output.encoding UTF-8 --stringparam  use.id.as.filename 1 $(XSLTPROC_FLAGS) "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" $(MAIN)
 	@test "x$(CSS)" != "x" && \
           echo "Copying .css files: $(CSS)" && \
           cp $(srcdir)/$(CSS) html
@@ -857,7 +882,20 @@
 # make sure xml validates properly
 check-local: $(BUILDDIR)/$(MAIN)
 	@cp -f $(srcdir)/../image-png $(BUILDDIR)/image.entities
-	cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && xmllint -noout -valid $(MAIN)
+	@cd $(BUILDDIR) && \
+	if [ `which curl` ]; then \
+    links=`$(XSLTPROC) $(XSLTPROC_FLAGS) --xinclude $(abs_top_srcdir)/docs/list-ulink.xsl $(MAIN) | egrep '^http' | sort | uniq` && \
+    have_error=0 && \
+    for link in $$links; do \
+      code=`curl -s -m20 -o /dev/null -I -w "%{http_code}" $$link`; \
+      if [ \( $$? -ne 0 \) -o \( $$code -gt 399 \) ]; then \
+        echo "exit_status=$$?, http_code=$$code: $$link"; \
+        grep -Hnr "$$link" .; \
+        have_error=1; \
+      fi; \
+    done \
+  fi
 
 # avoid 'cp: cannot create regular file `build/image.entities': File exists'
 # errors during 'make distcheck' by disabling parallel builds
diff --git a/docs/pwg/advanced-allocation.xml b/docs/pwg/advanced-allocation.xml
index 625e76e..5888037 100644
--- a/docs/pwg/advanced-allocation.xml
+++ b/docs/pwg/advanced-allocation.xml
@@ -41,12 +41,22 @@
       never be changed after the object is created, however, the offset
       and size can be changed.
     </para>
-    <para>
-      <classname>GstMemory</classname> objects are created by a
-      <classname>GstAllocator</classname> object. To implement support
-      for a new kind of memory type, you must implement a new allocator
-      object.
-    </para>
+    <sect2 id="section-allocation-allocator" xreflabel="GstAllocator">
+      <title>GstAllocator</title>
+      <para>
+        <classname>GstMemory</classname> objects are created by a
+        <classname>GstAllocator</classname> object. Most allocators implement the
+        default <function>gst_allocator_alloc()</function> method but some allocator
+        might implement a different method, for example when additional parameters
+        are needed to allocate the specific memory.
+      </para>
+      <para>
+        Different allocators exist for, for example, system memory, shared memory
+        and memory backed by a DMAbuf file descriptor. To implement support for a
+        new kind of memory type, you must implement a new allocator object as shown
+        below.
+      </para>
+    </sect2>
     <sect2 id="section-allocation-memory-ex" xreflabel="GstMemory-ex">
       <title>GstMemory API example</title>
       <para>
@@ -88,7 +98,7 @@
       </programlisting>
     </sect2>
 
-    <sect2 id="section-allocation-allocator" xreflabel="GstAllocator">
+    <sect2 id="section-allocation-allocator-ex" xreflabel="GstAllocator-ex">
       <title>Implementing a GstAllocator</title>
       <para>
         WRITEME
@@ -184,7 +194,7 @@
   /* make memory holding 100 bytes */
   mem = gst_allocator_alloc (NULL, 100, NULL);
 
-  /* add the the buffer */
+  /* add the buffer */
   gst_buffer_append_memory (buffer, mem);
 
 [...]
@@ -209,15 +219,10 @@
     <title>GstMeta</title>
     <para>
       With the <classname>GstMeta</classname> system you can add arbitrary
-      structures of on buffers. These structures describe extra properties
+      structures on buffers. These structures describe extra properties
       of the buffer such as cropping, stride, region of interest etc.
     </para>
     <para>
-      Metadata is also used to store, for example, the X image that is
-      backing up the memory of the buffer. This makes it easier for elements
-      to locate the X image from the buffer.
-    </para>
-    <para>
       The metadata system separates API specification (what the metadata
       and its API look like) and the implementation (how it works). This makes
       it possible to make different implementations of the same API,
diff --git a/docs/pwg/advanced-dparams.xml b/docs/pwg/advanced-dparams.xml
index 8a196c2..4d78c30 100644
--- a/docs/pwg/advanced-dparams.xml
+++ b/docs/pwg/advanced-dparams.xml
@@ -45,7 +45,7 @@
   }
   </programlisting>
   <para>
-    It makes not sense for all GObject parameter to be real-time controlled.
+    It makes no sense for all GObject parameter to be real-time controlled.
     Therefore the next step is to mark controllable parameters.
     This is done by using the special flag <constant>GST_PARAM_CONTROLLABLE</constant>.
     when setting up GObject params in the <function>_class_init</function> method.    
diff --git a/docs/pwg/advanced-negotiation.xml b/docs/pwg/advanced-negotiation.xml
index e6ec035..9ec9993 100644
--- a/docs/pwg/advanced-negotiation.xml
+++ b/docs/pwg/advanced-negotiation.xml
@@ -31,7 +31,7 @@
       </listitem>
       <listitem>
         <para>
-          An upstream element can inform downstream that it would like to
+          A downstream element can inform upstream that it would like to
           suggest a new format by sending a RECONFIGURE event upstream. The
           RECONFIGURE event simply instructs an upstream element to restart
           the negotiation phase. Because the element that sent out the
diff --git a/docs/pwg/advanced-qos.xml b/docs/pwg/advanced-qos.xml
index a6561bc..36ddf31 100644
--- a/docs/pwg/advanced-qos.xml
+++ b/docs/pwg/advanced-qos.xml
@@ -183,7 +183,7 @@
       <title>Long term correction</title>
       <para>
         Long term corrections are a bit more difficult to perform. They
-        rely on the value of the propertion in the QOS event. Elements should
+        rely on the value of the proportion in the QOS event. Elements should
         reduce the amount of resources they comsume by the proportion 
         field in the QoS message.
       </para>
diff --git a/docs/pwg/appendix-checklist.xml b/docs/pwg/appendix-checklist.xml
index 336d3da..bd118c4 100644
--- a/docs/pwg/appendix-checklist.xml
+++ b/docs/pwg/appendix-checklist.xml
@@ -31,7 +31,7 @@
           element that goes from <classname>PAUSED</classname> to
           <classname>READY</classname> and back to
           <classname>PAUSED</classname> should start reading the
-          stream from he start again.
+          stream from the start again.
         </para>
       </listitem>
       <listitem>
diff --git a/docs/pwg/building-boiler.xml b/docs/pwg/building-boiler.xml
index 77d78ce..fd171ad 100644
--- a/docs/pwg/building-boiler.xml
+++ b/docs/pwg/building-boiler.xml
@@ -328,7 +328,7 @@
       Those pad templates are registered during the
       <function>_class_init ()</function> function with the
       <function>gst_element_class_add_pad_template ()</function>. For this
-      function you need a handle the the <classname>GstPadTemplate</classname>
+      function you need a handle the <classname>GstPadTemplate</classname>
       which you can create from the static pad template with
       <function>gst_static_pad_template_get ()</function>. See below for more
       details on this.
diff --git a/docs/pwg/building-queryfn.xml b/docs/pwg/building-queryfn.xml
index ad2e943..2f88163 100644
--- a/docs/pwg/building-queryfn.xml
+++ b/docs/pwg/building-queryfn.xml
@@ -28,8 +28,8 @@
 [..]
   /* configure event function on the pad before adding
    * the pad to the element */
-  gst_pad_set_event_function (filter->srcpad,
-      gst_my_filter_src_event);
+  gst_pad_set_query_function (filter->srcpad,
+      gst_my_filter_src_query);
 [..]
 }
 
diff --git a/docs/pwg/intro-preface.xml b/docs/pwg/intro-preface.xml
index bb6699f..40e6541 100644
--- a/docs/pwg/intro-preface.xml
+++ b/docs/pwg/intro-preface.xml
@@ -112,7 +112,7 @@
       understanding of the C language.
       Since &GStreamer; adheres to the GObject programming model, this guide
       also assumes that you understand the basics of <ulink type="http"
-      url="http://developer.gnome.org/doc/API/2.0/gobject/index.html">GObject</ulink>
+      url="http://developer.gnome.org/gobject/stable/pt01.html">GObject</ulink>
       programming. 
       You may also want to have a look
       at Eric Harlow's book <emphasis>Developing Linux Applications with
diff --git a/docs/slides/Makefile.in b/docs/slides/Makefile.in
index a95fe58..0c0b932 100644
--- a/docs/slides/Makefile.in
+++ b/docs/slides/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs/slides
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 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 \
@@ -83,24 +109,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,15 +242,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -225,11 +256,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -237,6 +266,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,6 +329,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -429,11 +460,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -569,15 +600,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/docs/xsl/Makefile.in b/docs/xsl/Makefile.in
index 0b4315d..8b3ac27 100644
--- a/docs/xsl/Makefile.in
+++ b/docs/xsl/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs/xsl
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,24 +109,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,15 +242,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -225,11 +256,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -237,6 +266,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,6 +329,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -430,11 +461,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -570,15 +601,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst/Makefile.am b/gst/Makefile.am
index be1d494..b6cf720 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -26,9 +26,17 @@
 GST_PLUGIN_SRC = gstplugin.c
 endif
 
-SUBDIRS = $(SUBDIRS_PARSE)
+if !GST_DISABLE_GST_DEBUG
+SUBDIRS_PRINTF = printf
+GST_PRINTF_LA = printf/libgstprintf.la
+else
+SUBDIRS_PRINTF =
+GST_PRINTF_LA =
+endif
 
-DIST_SUBDIRS = parse
+SUBDIRS = $(SUBDIRS_PARSE) $(SUBDIRS_PRINTF)
+
+DIST_SUBDIRS = parse printf
 
 # make variables for all generated source and header files to make the
 # distinction clear
@@ -55,8 +63,10 @@
 	gstbufferpool.c		\
 	gstbus.c		\
 	gstcaps.c		\
+	gstcapsfeatures.c	\
 	gstchildproxy.c		\
 	gstclock.c		\
+	gstcontext.c \
 	gstcontrolbinding.c \
 	gstcontrolsource.c \
 	gstdatetime.c		\
@@ -130,6 +140,7 @@
 
 libgstreamer_@GST_API_VERSION@_la_LIBADD =		\
 	$(GST_PARSE_LA)					\
+	$(GST_PRINTF_LA)				\
 	$(GST_ALL_LIBS)					\
 	$(WIN32_LIBS)					\
 	$(LIBM)
@@ -150,9 +161,11 @@
 	gstbufferpool.h		\
 	gstbus.h		\
 	gstcaps.h		\
+	gstcapsfeatures.h	\
 	gstchildproxy.h		\
 	gstclock.h		\
 	gstcompat.h		\
+	gstcontext.h \
 	gstcontrolbinding.h \
 	gstcontrolsource.h \
 	gstdatetime.h		\
@@ -265,7 +278,7 @@
 gir_sources+=$(patsubst %,$(builddir)/%, $(built_source_make))
 
 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 \
+	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace Gst \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
@@ -281,7 +294,6 @@
 		--pkg glib-2.0 \
 		--pkg gobject-2.0 \
 		--pkg gmodule-no-export-2.0 \
-		--pkg gthread-2.0 \
 		--pkg-export gstreamer-@GST_API_VERSION@ \
 		--add-init-section="gst_init(NULL, NULL);" \
 		--output $@ \
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 9a9568b..7eb7607 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,16 +83,17 @@
 target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst
-DIST_COMMON = $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
-	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/gstconfig.h.in $(srcdir)/gstversion.h.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/gstconfig.h.in $(srcdir)/gstversion.h.in \
+	$(top_srcdir)/depcomp \
+	$(libgstreamer_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS)
 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 \
@@ -89,12 +117,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -134,25 +164,28 @@
 	"$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 @GST_DISABLE_PARSE_FALSE@am__DEPENDENCIES_1 = parse/libgstparse.la
-am__DEPENDENCIES_2 =
+@GST_DISABLE_GST_DEBUG_FALSE@am__DEPENDENCIES_2 =  \
+@GST_DISABLE_GST_DEBUG_FALSE@	printf/libgstprintf.la
+am__DEPENDENCIES_3 =
 libgstreamer_@GST_API_VERSION@_la_DEPENDENCIES =  \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
-	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2)
+	$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) \
+	$(am__DEPENDENCIES_3)
 am__libgstreamer_@GST_API_VERSION@_la_SOURCES_DIST = gst.c gstobject.c \
 	gstallocator.c gstbin.c gstbuffer.c gstbufferlist.c \
-	gstbufferpool.c gstbus.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 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
+	gstbufferpool.c gstbus.c gstcaps.c gstcapsfeatures.c \
+	gstchildproxy.c gstclock.c gstcontext.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 \
+	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 =  \
@@ -165,8 +198,10 @@
 	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-gstcapsfeatures.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstclock.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstcontext.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo \
@@ -222,10 +257,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 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 $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -238,32 +286,29 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 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 \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -275,9 +320,29 @@
 	$(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -404,15 +469,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -422,11 +483,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -434,6 +493,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -496,6 +556,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -597,8 +658,12 @@
 @GST_DISABLE_TRACE_TRUE@GST_TRACE_SRC = 
 @GST_DISABLE_PLUGIN_FALSE@GST_PLUGIN_SRC = gstplugin.c
 @GST_DISABLE_PLUGIN_TRUE@GST_PLUGIN_SRC = 
-SUBDIRS = $(SUBDIRS_PARSE)
-DIST_SUBDIRS = parse
+@GST_DISABLE_GST_DEBUG_FALSE@SUBDIRS_PRINTF = printf
+@GST_DISABLE_GST_DEBUG_TRUE@SUBDIRS_PRINTF = 
+@GST_DISABLE_GST_DEBUG_FALSE@GST_PRINTF_LA = printf/libgstprintf.la
+@GST_DISABLE_GST_DEBUG_TRUE@GST_PRINTF_LA = 
+SUBDIRS = $(SUBDIRS_PARSE) $(SUBDIRS_PRINTF)
+DIST_SUBDIRS = parse printf
 
 # make variables for all generated source and header files to make the
 # distinction clear
@@ -622,8 +687,10 @@
 	gstbufferpool.c		\
 	gstbus.c		\
 	gstcaps.c		\
+	gstcapsfeatures.c	\
 	gstchildproxy.c		\
 	gstclock.c		\
+	gstcontext.c \
 	gstcontrolbinding.c \
 	gstcontrolsource.c \
 	gstdatetime.c		\
@@ -700,6 +767,7 @@
 
 libgstreamer_@GST_API_VERSION@_la_LIBADD = \
 	$(GST_PARSE_LA)					\
+	$(GST_PRINTF_LA)				\
 	$(GST_ALL_LIBS)					\
 	$(WIN32_LIBS)					\
 	$(LIBM)
@@ -719,9 +787,11 @@
 	gstbufferpool.h		\
 	gstbus.h		\
 	gstcaps.h		\
+	gstcapsfeatures.h	\
 	gstchildproxy.h		\
 	gstclock.h		\
 	gstcompat.h		\
+	gstcontext.h \
 	gstcontrolbinding.h \
 	gstcontrolsource.h \
 	gstdatetime.h		\
@@ -840,6 +910,7 @@
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gstversion.h: $(top_builddir)/config.status $(srcdir)/gstversion.h.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -866,12 +937,15 @@
 
 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
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -890,8 +964,10 @@
 @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-gstcapsfeatures.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-gstcontext.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@
@@ -1026,6 +1102,13 @@
 @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-gstcaps.lo `test -f 'gstcaps.c' || echo '$(srcdir)/'`gstcaps.c
 
+libgstreamer_@GST_API_VERSION@_la-gstcapsfeatures.lo: gstcapsfeatures.c
+@am__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-gstcapsfeatures.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcapsfeatures.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstcapsfeatures.lo `test -f 'gstcapsfeatures.c' || echo '$(srcdir)/'`gstcapsfeatures.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcapsfeatures.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcapsfeatures.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcapsfeatures.c' object='libgstreamer_@GST_API_VERSION@_la-gstcapsfeatures.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-gstcapsfeatures.lo `test -f 'gstcapsfeatures.c' || echo '$(srcdir)/'`gstcapsfeatures.c
+
 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
@@ -1040,6 +1123,13 @@
 @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-gstclock.lo `test -f 'gstclock.c' || echo '$(srcdir)/'`gstclock.c
 
+libgstreamer_@GST_API_VERSION@_la-gstcontext.lo: gstcontext.c
+@am__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-gstcontext.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontext.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstcontext.lo `test -f 'gstcontext.c' || echo '$(srcdir)/'`gstcontext.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontext.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontext.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcontext.c' object='libgstreamer_@GST_API_VERSION@_la-gstcontext.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-gstcontext.lo `test -f 'gstcontext.c' || echo '$(srcdir)/'`gstcontext.c
+
 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
@@ -1474,22 +1564,25 @@
 	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.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -1504,57 +1597,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -1570,12 +1618,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -1587,15 +1630,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -1604,6 +1643,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1783,19 +1837,18 @@
 	uninstall-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-	ctags-recursive install install-am install-strip \
-	tags-recursive
+.MAKE: $(am__recursive_targets) all check install install-am \
+	install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am all-local check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
-	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-girDATA install-html install-html-am \
-	install-info install-info-am install-libLTLIBRARIES \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+	check check-am clean clean-generic clean-libLTLIBRARIES \
+	clean-libtool cscopelist-am ctags ctags-am 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-girDATA \
+	install-html install-html-am install-info install-info-am \
+	install-libLTLIBRARIES \
 	install-libgstreamer_@GST_API_VERSION@includeHEADERS \
 	install-man \
 	install-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
@@ -1804,7 +1857,7 @@
 	installcheck-am installdirs installdirs-am maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstreamer_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
@@ -1851,7 +1904,7 @@
 	> $@
 
 @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@	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace Gst \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
@@ -1867,7 +1920,6 @@
 @HAVE_INTROSPECTION_TRUE@		--pkg glib-2.0 \
 @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_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL, NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
diff --git a/gst/gettext.h b/gst/gettext.h
index 59902b3..fc70ab7 100644
--- a/gst/gettext.h
+++ b/gst/gettext.h
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Library General Public
    License along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
    USA.  */
 
 #ifndef _LIBGETTEXT_H
diff --git a/gst/glib-compat-private.h b/gst/glib-compat-private.h
index 9a92993..8f37de2 100644
--- a/gst/glib-compat-private.h
+++ b/gst/glib-compat-private.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GLIB_COMPAT_PRIVATE_H__
diff --git a/gst/glib-compat.h b/gst/glib-compat.h
index 7794306..934953b 100644
--- a/gst/glib-compat.h
+++ b/gst/glib-compat.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gst-i18n-app.h b/gst/gst-i18n-app.h
index b579c9d..56140e5 100644
--- a/gst/gst-i18n-app.h
+++ b/gst/gst-i18n-app.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gst-i18n-lib.h b/gst/gst-i18n-lib.h
index 1902196..cf5c285 100644
--- a/gst/gst-i18n-lib.h
+++ b/gst/gst-i18n-lib.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gst.c b/gst/gst.c
index 8421be8..950fc18 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -192,82 +192,6 @@
  * val ::= [0-5]
  */
 
-#ifndef NUL
-#define NUL '\0'
-#endif
-
-#ifndef GST_DISABLE_GST_DEBUG
-static gboolean
-parse_debug_category (gchar * str, const gchar ** category)
-{
-  if (!str)
-    return FALSE;
-
-  /* works in place */
-  g_strstrip (str);
-
-  if (str[0] != NUL) {
-    *category = str;
-    return TRUE;
-  }
-
-  return FALSE;
-}
-
-static gboolean
-parse_debug_level (gchar * str, GstDebugLevel * level)
-{
-  if (!str)
-    return FALSE;
-
-  /* works in place */
-  g_strstrip (str);
-
-  if (str[0] != NUL && str[1] == NUL
-      && str[0] >= '0' && str[0] < '0' + GST_LEVEL_COUNT) {
-    *level = (GstDebugLevel) (str[0] - '0');
-    return TRUE;
-  }
-
-  return FALSE;
-}
-
-static void
-parse_debug_list (const gchar * list)
-{
-  gchar **split;
-  gchar **walk;
-
-  g_assert (list);
-
-  split = g_strsplit (list, ",", 0);
-
-  for (walk = split; *walk; walk++) {
-    if (strchr (*walk, ':')) {
-      gchar **values = g_strsplit (*walk, ":", 2);
-
-      if (values[0] && values[1]) {
-        GstDebugLevel level;
-        const gchar *category;
-
-        if (parse_debug_category (values[0], &category)
-            && parse_debug_level (values[1], &level))
-          gst_debug_set_threshold_for_name (category, level);
-      }
-
-      g_strfreev (values);
-    } else {
-      GstDebugLevel level;
-
-      if (parse_debug_level (*walk, &level))
-        gst_debug_set_default_threshold (level);
-    }
-  }
-
-  g_strfreev (split);
-}
-#endif
-
 #ifdef G_OS_WIN32
 BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
 BOOL WINAPI
@@ -403,6 +327,7 @@
 #ifndef GST_DISABLE_OPTION_PARSING
   ctx = g_option_context_new ("- GStreamer initialization");
   g_option_context_set_ignore_unknown_options (ctx, TRUE);
+  g_option_context_set_help_enabled (ctx, FALSE);
   group = gst_init_get_option_group ();
   g_option_context_add_group (ctx, group);
   res = g_option_context_parse (ctx, argc, argv, err);
@@ -543,7 +468,6 @@
 #endif
 
 #ifdef ENABLE_NLS
-  setlocale (LC_ALL, "");
   bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 #endif /* ENABLE_NLS */
@@ -557,7 +481,7 @@
 
     debug_list = g_getenv ("GST_DEBUG");
     if (debug_list) {
-      parse_debug_list (debug_list);
+      gst_debug_set_threshold_from_string (debug_list, FALSE);
     }
   }
 
@@ -639,6 +563,7 @@
   _priv_gst_query_initialize ();
   _priv_gst_structure_initialize ();
   _priv_gst_caps_initialize ();
+  _priv_gst_caps_features_initialize ();
   _priv_gst_meta_initialize ();
 
   g_type_class_ref (gst_object_get_type ());
@@ -731,6 +656,7 @@
   g_type_class_ref (gst_control_source_get_type ());
   g_type_class_ref (gst_lock_flags_get_type ());
   g_type_class_ref (gst_allocator_flags_get_type ());
+  g_type_class_ref (gst_stream_flags_get_type ());
 
   _priv_gst_event_initialize ();
   _priv_gst_buffer_initialize ();
@@ -738,6 +664,7 @@
   _priv_gst_buffer_list_initialize ();
   _priv_gst_sample_initialize ();
   _priv_gst_value_initialize ();
+  _priv_gst_context_initialize ();
 
   g_type_class_ref (gst_param_spec_fraction_get_type ());
   _priv_gst_tag_initialize ();
@@ -883,7 +810,7 @@
       break;
     }
     case ARG_DEBUG:
-      parse_debug_list (arg);
+      gst_debug_set_threshold_from_string (arg, FALSE);
       break;
     case ARG_DEBUG_NO_COLOR:
       gst_debug_set_colored (FALSE);
@@ -1102,6 +1029,7 @@
   g_type_class_unref (g_type_class_peek (gst_toc_entry_type_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_lock_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_allocator_flags_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_stream_flags_get_type ()));
 
 
   gst_deinitialized = TRUE;
diff --git a/gst/gst.h b/gst/gst.h
index 3188758..82f6bf9 100644
--- a/gst/gst.h
+++ b/gst/gst.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -36,6 +36,7 @@
 #include <gst/gstbufferlist.h>
 #include <gst/gstbufferpool.h>
 #include <gst/gstcaps.h>
+#include <gst/gstcapsfeatures.h>
 #include <gst/gstchildproxy.h>
 #include <gst/gstclock.h>
 #include <gst/gstcontrolsource.h>
diff --git a/gst/gst_private.h b/gst/gst_private.h
index 6b9f3c9..61762b2 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PRIVATE_H__
@@ -105,6 +105,7 @@
 G_GNUC_INTERNAL  void  _priv_gst_buffer_list_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_structure_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_caps_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_caps_features_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_event_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_format_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_message_initialize (void);
@@ -116,6 +117,7 @@
 G_GNUC_INTERNAL  void  _priv_gst_tag_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_value_initialize (void);
 G_GNUC_INTERNAL  void  _priv_gst_debug_init (void);
+G_GNUC_INTERNAL  void  _priv_gst_context_initialize (void);
 
 /* Private registry functions */
 G_GNUC_INTERNAL
@@ -131,10 +133,19 @@
 
 /* used in both gststructure.c and gstcaps.c; numbers are completely made up */
 #define STRUCTURE_ESTIMATED_STRING_LEN(s) (16 + gst_structure_n_fields(s) * 22)
+#define FEATURES_ESTIMATED_STRING_LEN(s) (16 + gst_caps_features_get_size(s) * 14)
 
 G_GNUC_INTERNAL
 gboolean  priv_gst_structure_append_to_gstring (const GstStructure * structure,
                                                 GString            * s);
+G_GNUC_INTERNAL
+void priv_gst_caps_features_append_to_gstring (const GstCapsFeatures * features, GString *s);
+
+G_GNUC_INTERNAL
+gboolean priv_gst_structure_parse_name (gchar * str, gchar **start, gchar ** end, gchar ** next);
+G_GNUC_INTERNAL
+gboolean priv_gst_structure_parse_fields (gchar *str, gchar ** end, GstStructure *structure);
+
 /* registry cache backends */
 G_GNUC_INTERNAL
 gboolean		priv_gst_registry_binary_read_cache	(GstRegistry * registry, const char *location);
@@ -220,6 +231,7 @@
 GST_EXPORT GstDebugCategory *GST_CAT_QOS;
 GST_EXPORT GstDebugCategory *GST_CAT_META;
 GST_EXPORT GstDebugCategory *GST_CAT_LOCKING;
+GST_EXPORT GstDebugCategory *GST_CAT_CONTEXT;
 
 /* Categories that should be completely private to
  * libgstreamer should be done like this: */
@@ -262,9 +274,15 @@
 #define GST_CAT_POLL             NULL
 #define GST_CAT_META             NULL
 #define GST_CAT_LOCKING          NULL
+#define GST_CAT_CONTEXT          NULL
 
 #endif
 
+#ifdef GST_DISABLE_GST_DEBUG
+/* for _gst_element_error_printf */
+#define __gst_vasprintf __gst_info_fallback_vasprintf
+int __gst_vasprintf (char **result, char const *format, va_list args);
+#endif
 
 /**** objects made opaque until the private bits have been made private ****/
 
diff --git a/gst/gstallocator.c b/gst/gstallocator.c
index 4e42408..63b44bc 100644
--- a/gst/gstallocator.c
+++ b/gst/gstallocator.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -95,6 +95,7 @@
   GstMemory *copy;
   GstMapInfo sinfo, dinfo;
   GstAllocationParams params = { 0, mem->align, 0, 0, };
+  GstAllocator *allocator;
 
   if (!gst_memory_map (mem, &sinfo, GST_MAP_READ))
     return NULL;
@@ -103,7 +104,11 @@
     size = sinfo.size > offset ? sinfo.size - offset : 0;
 
   /* use the same allocator as the memory we copy  */
-  copy = gst_allocator_alloc (mem->allocator, size, &params);
+  allocator = mem->allocator;
+  if (GST_OBJECT_FLAG_IS_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC))
+    allocator = NULL;
+  copy = gst_allocator_alloc (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_allocator_free (mem->allocator, copy);
@@ -342,24 +347,24 @@
 
   gpointer user_data;
   GDestroyNotify notify;
-} GstMemoryDefault;
+} GstMemorySystem;
 
 typedef struct
 {
   GstAllocator parent;
-} GstDefaultAllocator;
+} GstAllocatorSysmem;
 
 typedef struct
 {
   GstAllocatorClass parent_class;
-} GstDefaultAllocatorClass;
+} GstAllocatorSysmemClass;
 
-GType gst_default_allocator_get_type (void);
-G_DEFINE_TYPE (GstDefaultAllocator, gst_default_allocator, GST_TYPE_ALLOCATOR);
+GType gst_allocator_sysmem_get_type (void);
+G_DEFINE_TYPE (GstAllocatorSysmem, gst_allocator_sysmem, GST_TYPE_ALLOCATOR);
 
 /* initialize the fields */
 static inline void
-_default_mem_init (GstMemoryDefault * mem, GstMemoryFlags flags,
+_sysmem_init (GstMemorySystem * mem, GstMemoryFlags flags,
     GstMemory * parent, gsize slice_size,
     gpointer data, gsize maxsize, gsize align, gsize offset, gsize size,
     gpointer user_data, GDestroyNotify notify)
@@ -374,29 +379,29 @@
 }
 
 /* create a new memory block that manages the given memory */
-static inline GstMemoryDefault *
-_default_mem_new (GstMemoryFlags flags,
+static inline GstMemorySystem *
+_sysmem_new (GstMemoryFlags flags,
     GstMemory * parent, gpointer data, gsize maxsize, gsize align, gsize offset,
     gsize size, gpointer user_data, GDestroyNotify notify)
 {
-  GstMemoryDefault *mem;
+  GstMemorySystem *mem;
   gsize slice_size;
 
-  slice_size = sizeof (GstMemoryDefault);
+  slice_size = sizeof (GstMemorySystem);
 
   mem = g_slice_alloc (slice_size);
-  _default_mem_init (mem, flags, parent, slice_size,
+  _sysmem_init (mem, flags, parent, slice_size,
       data, maxsize, align, offset, size, user_data, notify);
 
   return mem;
 }
 
 /* allocate the memory and structure in one block */
-static GstMemoryDefault *
-_default_mem_new_block (GstMemoryFlags flags,
+static GstMemorySystem *
+_sysmem_new_block (GstMemoryFlags flags,
     gsize maxsize, gsize align, gsize offset, gsize size)
 {
-  GstMemoryDefault *mem;
+  GstMemorySystem *mem;
   gsize aoffset, slice_size, padding;
   guint8 *data;
 
@@ -405,13 +410,13 @@
   /* allocate more to compensate for alignment */
   maxsize += align;
   /* alloc header and data in one block */
-  slice_size = sizeof (GstMemoryDefault) + maxsize;
+  slice_size = sizeof (GstMemorySystem) + maxsize;
 
   mem = g_slice_alloc (slice_size);
   if (mem == NULL)
     return NULL;
 
-  data = (guint8 *) mem + sizeof (GstMemoryDefault);
+  data = (guint8 *) mem + sizeof (GstMemorySystem);
 
   /* do alignment */
   if ((aoffset = ((guintptr) data & align))) {
@@ -427,34 +432,34 @@
   if (padding && (flags & GST_MEMORY_FLAG_ZERO_PADDED))
     memset (data + offset + size, 0, padding);
 
-  _default_mem_init (mem, flags, NULL, slice_size, data, maxsize,
+  _sysmem_init (mem, flags, NULL, slice_size, data, maxsize,
       align, offset, size, NULL, NULL);
 
   return mem;
 }
 
 static gpointer
-_default_mem_map (GstMemoryDefault * mem, gsize maxsize, GstMapFlags flags)
+_sysmem_map (GstMemorySystem * mem, gsize maxsize, GstMapFlags flags)
 {
   return mem->data;
 }
 
 static gboolean
-_default_mem_unmap (GstMemoryDefault * mem)
+_sysmem_unmap (GstMemorySystem * mem)
 {
   return TRUE;
 }
 
-static GstMemoryDefault *
-_default_mem_copy (GstMemoryDefault * mem, gssize offset, gsize size)
+static GstMemorySystem *
+_sysmem_copy (GstMemorySystem * mem, gssize offset, gsize size)
 {
-  GstMemoryDefault *copy;
+  GstMemorySystem *copy;
 
   if (size == -1)
     size = mem->mem.size > offset ? mem->mem.size - offset : 0;
 
   copy =
-      _default_mem_new_block (0, mem->mem.maxsize, mem->mem.align,
+      _sysmem_new_block (0, mem->mem.maxsize, mem->mem.align,
       mem->mem.offset + offset, size);
   GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
       "memcpy %" G_GSIZE_FORMAT " memory %p -> %p", mem->mem.maxsize, mem,
@@ -464,10 +469,10 @@
   return copy;
 }
 
-static GstMemoryDefault *
-_default_mem_share (GstMemoryDefault * mem, gssize offset, gsize size)
+static GstMemorySystem *
+_sysmem_share (GstMemorySystem * mem, gssize offset, gsize size)
 {
-  GstMemoryDefault *sub;
+  GstMemorySystem *sub;
   GstMemory *parent;
 
   /* find the real parent */
@@ -479,7 +484,7 @@
 
   /* the shared memory is always readonly */
   sub =
-      _default_mem_new (GST_MINI_OBJECT_FLAGS (parent) |
+      _sysmem_new (GST_MINI_OBJECT_FLAGS (parent) |
       GST_MINI_OBJECT_FLAG_LOCK_READONLY, parent, mem->data, mem->mem.maxsize,
       mem->mem.align, mem->mem.offset + offset, size, NULL, NULL);
 
@@ -487,14 +492,13 @@
 }
 
 static gboolean
-_default_mem_is_span (GstMemoryDefault * mem1, GstMemoryDefault * mem2,
-    gsize * offset)
+_sysmem_is_span (GstMemorySystem * mem1, GstMemorySystem * mem2, gsize * offset)
 {
 
   if (offset) {
-    GstMemoryDefault *parent;
+    GstMemorySystem *parent;
 
-    parent = (GstMemoryDefault *) mem1->mem.parent;
+    parent = (GstMemorySystem *) mem1->mem.parent;
 
     *offset = mem1->mem.offset - parent->mem.offset;
   }
@@ -510,14 +514,14 @@
 {
   gsize maxsize = size + params->prefix + params->padding;
 
-  return (GstMemory *) _default_mem_new_block (params->flags,
+  return (GstMemory *) _sysmem_new_block (params->flags,
       maxsize, params->align, params->prefix, size);
 }
 
 static void
 default_free (GstAllocator * allocator, GstMemory * mem)
 {
-  GstMemoryDefault *dmem = (GstMemoryDefault *) mem;
+  GstMemorySystem *dmem = (GstMemorySystem *) mem;
   gsize slice_size;
 
   if (dmem->notify)
@@ -527,20 +531,20 @@
 
 #ifdef USE_POISONING
   /* just poison the structs, not all the data */
-  memset (mem, 0xff, sizeof (GstMemoryDefault));
+  memset (mem, 0xff, sizeof (GstMemorySystem));
 #endif
 
   g_slice_free1 (slice_size, mem);
 }
 
 static void
-gst_default_allocator_finalize (GObject * obj)
+gst_allocator_sysmem_finalize (GObject * obj)
 {
   g_warning ("The default memory allocator was freed!");
 }
 
 static void
-gst_default_allocator_class_init (GstDefaultAllocatorClass * klass)
+gst_allocator_sysmem_class_init (GstAllocatorSysmemClass * klass)
 {
   GObjectClass *gobject_class;
   GstAllocatorClass *allocator_class;
@@ -548,25 +552,25 @@
   gobject_class = (GObjectClass *) klass;
   allocator_class = (GstAllocatorClass *) klass;
 
-  gobject_class->finalize = gst_default_allocator_finalize;
+  gobject_class->finalize = gst_allocator_sysmem_finalize;
 
   allocator_class->alloc = default_alloc;
   allocator_class->free = default_free;
 }
 
 static void
-gst_default_allocator_init (GstDefaultAllocator * allocator)
+gst_allocator_sysmem_init (GstAllocatorSysmem * allocator)
 {
   GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
 
   GST_CAT_DEBUG (GST_CAT_MEMORY, "init allocator %p", allocator);
 
   alloc->mem_type = GST_ALLOCATOR_SYSMEM;
-  alloc->mem_map = (GstMemoryMapFunction) _default_mem_map;
-  alloc->mem_unmap = (GstMemoryUnmapFunction) _default_mem_unmap;
-  alloc->mem_copy = (GstMemoryCopyFunction) _default_mem_copy;
-  alloc->mem_share = (GstMemoryShareFunction) _default_mem_share;
-  alloc->mem_is_span = (GstMemoryIsSpanFunction) _default_mem_is_span;
+  alloc->mem_map = (GstMemoryMapFunction) _sysmem_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) _sysmem_unmap;
+  alloc->mem_copy = (GstMemoryCopyFunction) _sysmem_copy;
+  alloc->mem_share = (GstMemoryShareFunction) _sysmem_share;
+  alloc->mem_is_span = (GstMemoryIsSpanFunction) _sysmem_is_span;
 }
 
 void
@@ -584,7 +588,7 @@
   GST_CAT_DEBUG (GST_CAT_MEMORY, "memory alignment: %" G_GSIZE_FORMAT,
       gst_memory_alignment);
 
-  _sysmem_allocator = g_object_new (gst_default_allocator_get_type (), NULL);
+  _sysmem_allocator = g_object_new (gst_allocator_sysmem_get_type (), NULL);
 
   gst_allocator_register (GST_ALLOCATOR_SYSMEM,
       gst_object_ref (_sysmem_allocator));
@@ -615,13 +619,13 @@
     gsize maxsize, gsize offset, gsize size, gpointer user_data,
     GDestroyNotify notify)
 {
-  GstMemoryDefault *mem;
+  GstMemorySystem *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, maxsize, 0, offset, size, user_data,
+      _sysmem_new (flags, NULL, data, maxsize, 0, offset, size, user_data,
       notify);
 
   return (GstMemory *) mem;
diff --git a/gst/gstallocator.h b/gst/gstallocator.h
index f9edd50..2337855 100644
--- a/gst/gstallocator.h
+++ b/gst/gstallocator.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstatomicqueue.c b/gst/gstatomicqueue.c
index 473092b..89bbb33 100644
--- a/gst/gstatomicqueue.c
+++ b/gst/gstatomicqueue.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gst_private.h"
diff --git a/gst/gstatomicqueue.h b/gst/gstatomicqueue.h
index af6d693..1b9c63a 100644
--- a/gst/gstatomicqueue.h
+++ b/gst/gstatomicqueue.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <glib.h>
diff --git a/gst/gstbin.c b/gst/gstbin.c
index ad3d2a0..cc4de10 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * MT safe.
  */
@@ -242,6 +242,7 @@
 static GstBusSyncReply bin_bus_handler (GstBus * bus,
     GstMessage * message, GstBin * bin);
 static gboolean gst_bin_query (GstElement * element, GstQuery * query);
+static void gst_bin_set_context (GstElement * element, GstContext * context);
 
 static gboolean gst_bin_do_latency_func (GstBin * bin);
 
@@ -461,6 +462,7 @@
 
   gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_bin_send_event);
   gstelement_class->query = GST_DEBUG_FUNCPTR (gst_bin_query);
+  gstelement_class->set_context = GST_DEBUG_FUNCPTR (gst_bin_set_context);
 
   klass->add_element = GST_DEBUG_FUNCPTR (gst_bin_add_func);
   klass->remove_element = GST_DEBUG_FUNCPTR (gst_bin_remove_func);
@@ -1073,7 +1075,7 @@
   GST_DEBUG_OBJECT (bin, "element :%s", GST_ELEMENT_NAME (element));
 
   /* we obviously can't add ourself to ourself */
-  if (G_UNLIKELY (GST_ELEMENT_CAST (element) == GST_ELEMENT_CAST (bin)))
+  if (G_UNLIKELY (element == GST_ELEMENT_CAST (bin)))
     goto adding_itself;
 
   /* get the element name to make sure it is unique in this bin. */
@@ -1140,6 +1142,9 @@
    * a new clock will be selected */
   gst_element_set_clock (element, GST_ELEMENT_CLOCK (bin));
 
+  if (GST_ELEMENT_CAST (bin)->context)
+    gst_element_set_context (element, GST_ELEMENT_CAST (bin)->context);
+
 #if 0
   /* set the cached index on the children */
   if (bin->priv->index)
@@ -1181,10 +1186,10 @@
   /* post the messages on the bus of the element so that the bin can handle
    * them */
   if (clock_message)
-    gst_element_post_message (GST_ELEMENT_CAST (element), clock_message);
+    gst_element_post_message (element, clock_message);
 
   if (async_message)
-    gst_element_post_message (GST_ELEMENT_CAST (element), async_message);
+    gst_element_post_message (element, async_message);
 
   /* unlink all linked pads */
   it = gst_element_iterate_pads (element);
@@ -2742,8 +2747,8 @@
 
 /*
  * This function is a utility event handler for seek events.
- * It will send the event to all sinks or sources depending on the
- * event-direction.
+ * It will send the event to all sinks or sources and appropriate
+ * ghost pads depending on the event-direction.
  *
  * Applications are free to override this behaviour and
  * implement their own seek handler, but this will work for
@@ -2772,7 +2777,7 @@
     switch (gst_iterator_next (iter, &data)) {
       case GST_ITERATOR_OK:
       {
-        GstElement *child = g_value_get_object (&data);;
+        GstElement *child = g_value_get_object (&data);
 
         gst_event_ref (event);
         res &= gst_element_send_event (child, event);
@@ -2797,6 +2802,45 @@
   }
   g_value_unset (&data);
   gst_iterator_free (iter);
+
+  if (GST_EVENT_IS_DOWNSTREAM (event)) {
+    iter = gst_element_iterate_sink_pads (GST_ELEMENT (bin));
+    GST_DEBUG_OBJECT (bin, "Sending %s event to sink pads",
+        GST_EVENT_TYPE_NAME (event));
+  } else {
+    iter = gst_element_iterate_src_pads (GST_ELEMENT (bin));
+    GST_DEBUG_OBJECT (bin, "Sending %s event to src pads",
+        GST_EVENT_TYPE_NAME (event));
+  }
+
+  done = FALSE;
+  while (!done) {
+    switch (gst_iterator_next (iter, &data)) {
+      case GST_ITERATOR_OK:
+      {
+        GstPad *pad = g_value_get_object (&data);
+
+        gst_event_ref (event);
+        res &= gst_pad_send_event (pad, event);
+        GST_LOG_OBJECT (pad, "After handling %s event: %d",
+            GST_EVENT_TYPE_NAME (event), res);
+        break;
+      }
+      case GST_ITERATOR_RESYNC:
+        gst_iterator_resync (iter);
+        res = TRUE;
+        break;
+      case GST_ITERATOR_DONE:
+        done = TRUE;
+        break;
+      case GST_ITERATOR_ERROR:
+        g_assert_not_reached ();
+        break;
+    }
+  }
+
+  g_value_unset (&data);
+  gst_iterator_free (iter);
   gst_event_unref (event);
 
   return res;
@@ -3223,8 +3267,8 @@
  *     result so we can answer it quicker the next time. Any element that
  *     changes its duration marks our cached values invalid.
  *     This message is also posted upwards. This is currently disabled
- *     because too many elements don't post DURATION messages when the
- *     duration changes.
+ *     because too many elements don't post DURATION_CHANGED messages when
+ *     the duration changes.
  *
  * GST_MESSAGE_CLOCK_LOST: This message is posted by an element when it
  *     can no longer provide a clock. The default bin behaviour is to
@@ -3387,7 +3431,7 @@
        * for duration, we will recalculate. */
 #if 0
       GST_OBJECT_LOCK (bin);
-      bin_remove_messages (bin, NULL, GST_MESSAGE_DURATION);
+      bin_remove_messages (bin, NULL, GST_MESSAGE_DURATION_CHANGED);
       GST_OBJECT_UNLOCK (bin);
 #endif
       goto forward;
@@ -3396,7 +3440,7 @@
     {
       GstClock **provided_clock_p;
       GstElement **clock_provider_p;
-      gboolean playing, provided, forward;
+      gboolean playing, toplevel, provided, forward;
       GstClock *clock;
 
       gst_message_parse_clock_lost (message, &clock);
@@ -3404,10 +3448,14 @@
       GST_OBJECT_LOCK (bin);
       bin->clock_dirty = TRUE;
       /* if we lost the clock that we provided, post to parent but
-       * only if we are PLAYING. */
+       * only if we are not a top-level bin or PLAYING.
+       * The reason for this is that applications should be able
+       * to PAUSE/PLAY if they receive this message without worrying
+       * about the state of the pipeline. */
       provided = (clock == bin->provided_clock);
       playing = (GST_STATE (bin) == GST_STATE_PLAYING);
-      forward = playing & provided;
+      toplevel = GST_OBJECT_PARENT (bin) == NULL;
+      forward = provided && (playing || !toplevel);
       if (provided) {
         GST_DEBUG_OBJECT (bin,
             "Lost clock %" GST_PTR_FORMAT " provided by %" GST_PTR_FORMAT,
@@ -3591,9 +3639,14 @@
 static gboolean
 bin_query_duration_fold (const GValue * vitem, GValue * ret, QueryFold * fold)
 {
-  GstElement *item = g_value_get_object (vitem);
+  gboolean res = FALSE;
+  GstObject *item = g_value_get_object (vitem);
+  if (GST_IS_PAD (item))
+    res = gst_pad_query (GST_PAD (item), fold->query);
+  else
+    res = gst_element_query (GST_ELEMENT (item), fold->query);
 
-  if (gst_element_query (item, fold->query)) {
+  if (res) {
     gint64 duration;
 
     g_value_set_boolean (ret, TRUE);
@@ -3639,9 +3692,14 @@
 static gboolean
 bin_query_position_fold (const GValue * vitem, GValue * ret, QueryFold * fold)
 {
-  GstElement *item = g_value_get_object (vitem);
+  gboolean res = FALSE;
+  GstObject *item = g_value_get_object (vitem);
+  if (GST_IS_PAD (item))
+    res = gst_pad_query (GST_PAD (item), fold->query);
+  else
+    res = gst_element_query (GST_ELEMENT (item), fold->query);
 
-  if (gst_element_query (item, fold->query)) {
+  if (res) {
     gint64 position;
 
     g_value_set_boolean (ret, TRUE);
@@ -3672,9 +3730,13 @@
 static gboolean
 bin_query_latency_fold (const GValue * vitem, GValue * ret, QueryFold * fold)
 {
-  GstElement *item = g_value_get_object (vitem);
-
-  if (gst_element_query (item, fold->query)) {
+  gboolean res = FALSE;
+  GstObject *item = g_value_get_object (vitem);
+  if (GST_IS_PAD (item))
+    res = gst_pad_query (GST_PAD (item), fold->query);
+  else
+    res = gst_element_query (GST_ELEMENT (item), fold->query);
+  if (res) {
     GstClockTime min, max;
     gboolean live;
 
@@ -3720,10 +3782,13 @@
 static gboolean
 bin_query_generic_fold (const GValue * vitem, GValue * ret, QueryFold * fold)
 {
-  GstElement *item = g_value_get_object (vitem);
-  gboolean res;
-
-  if ((res = gst_element_query (item, fold->query))) {
+  gboolean res = FALSE;
+  GstObject *item = g_value_get_object (vitem);
+  if (GST_IS_PAD (item))
+    res = gst_pad_query (GST_PAD (item), fold->query);
+  else
+    res = gst_element_query (GST_ELEMENT (item), fold->query);
+  if (res) {
     g_value_set_boolean (ret, TRUE);
     GST_DEBUG_OBJECT (item, "answered query %p", fold->query);
   }
@@ -3732,17 +3797,59 @@
   return !res;
 }
 
+/* Perform a query iteration for the given bin. The query is stored in
+ * QueryFold and iter should be either a GstPad iterator or a
+ * GstElement iterator. */
+static gboolean
+bin_iterate_fold (GstBin * bin, GstIterator * iter, QueryInitFunction fold_init,
+    QueryDoneFunction fold_done, GstIteratorFoldFunction fold_func,
+    QueryFold fold_data, gboolean default_return)
+{
+  gboolean res = default_return;
+  GValue ret = { 0 };
+  /* set the result of the query to FALSE initially */
+  g_value_init (&ret, G_TYPE_BOOLEAN);
+  g_value_set_boolean (&ret, res);
+
+  while (TRUE) {
+    GstIteratorResult ires;
+
+    ires = gst_iterator_fold (iter, fold_func, &ret, &fold_data);
+
+    switch (ires) {
+      case GST_ITERATOR_RESYNC:
+        gst_iterator_resync (iter);
+        if (fold_init)
+          fold_init (bin, &fold_data);
+        g_value_set_boolean (&ret, res);
+        break;
+      case GST_ITERATOR_OK:
+      case GST_ITERATOR_DONE:
+        res = g_value_get_boolean (&ret);
+        if (fold_done != NULL && res)
+          fold_done (bin, &fold_data);
+        goto done;
+      default:
+        res = FALSE;
+        goto done;
+    }
+  }
+done:
+  return res;
+}
+
 static gboolean
 gst_bin_query (GstElement * element, GstQuery * query)
 {
   GstBin *bin = GST_BIN_CAST (element);
   GstIterator *iter;
+  gboolean default_return = FALSE;
   gboolean res = FALSE;
+  gboolean src_pads_query_result = FALSE;
   GstIteratorFoldFunction fold_func;
   QueryInitFunction fold_init = NULL;
   QueryDoneFunction fold_done = NULL;
   QueryFold fold_data;
-  GValue ret = { 0 };
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_DURATION:
@@ -3759,7 +3866,7 @@
       for (cached = bin->messages; cached; cached = g_list_next (cached)) {
         GstMessage *message = (GstMessage *) cached->data;
 
-        if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_DURATION &&
+        if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_DURATION_CHANGED &&
             GST_MESSAGE_SRC (message) == GST_OBJECT_CAST (bin)) {
           GstFormat format;
           gint64 duration;
@@ -3800,7 +3907,7 @@
       fold_func = (GstIteratorFoldFunction) bin_query_latency_fold;
       fold_init = bin_query_min_max_init;
       fold_done = bin_query_latency_done;
-      res = TRUE;
+      default_return = TRUE;
       break;
     }
     default:
@@ -3810,10 +3917,6 @@
 
   fold_data.query = query;
 
-  /* set the result of the query to FALSE initially */
-  g_value_init (&ret, G_TYPE_BOOLEAN);
-  g_value_set_boolean (&ret, res);
-
   iter = gst_bin_iterate_sinks (bin);
   GST_DEBUG_OBJECT (bin, "Sending query %p (type %s) to sink children",
       query, GST_QUERY_TYPE_NAME (query));
@@ -3821,37 +3924,52 @@
   if (fold_init)
     fold_init (bin, &fold_data);
 
-  while (TRUE) {
-    GstIteratorResult ires;
-
-    ires = gst_iterator_fold (iter, fold_func, &ret, &fold_data);
-
-    switch (ires) {
-      case GST_ITERATOR_RESYNC:
-        gst_iterator_resync (iter);
-        if (fold_init)
-          fold_init (bin, &fold_data);
-        g_value_set_boolean (&ret, res);
-        break;
-      case GST_ITERATOR_OK:
-      case GST_ITERATOR_DONE:
-        res = g_value_get_boolean (&ret);
-        if (fold_done != NULL && res)
-          fold_done (bin, &fold_data);
-        goto done;
-      default:
-        res = FALSE;
-        goto done;
-    }
-  }
-done:
+  res =
+      bin_iterate_fold (bin, iter, fold_init, fold_done, fold_func, fold_data,
+      default_return);
   gst_iterator_free (iter);
 
+  if (!res) {
+    /* Query the source pads of the element */
+    iter = gst_element_iterate_src_pads (element);
+    src_pads_query_result =
+        bin_iterate_fold (bin, iter, fold_init, fold_done, fold_func,
+        fold_data, default_return);
+    gst_iterator_free (iter);
+
+    if (src_pads_query_result)
+      res = TRUE;
+  }
+
   GST_DEBUG_OBJECT (bin, "query %p result %d", query, res);
 
   return res;
 }
 
+static void
+set_context (const GValue * item, gpointer user_data)
+{
+  GstElement *element = g_value_get_object (item);
+
+  gst_element_set_context (element, user_data);
+}
+
+static void
+gst_bin_set_context (GstElement * element, GstContext * context)
+{
+  GstBin *bin;
+  GstIterator *children;
+
+  g_return_if_fail (GST_IS_BIN (element));
+
+  bin = GST_BIN (element);
+
+  children = gst_bin_iterate_elements (bin);
+  while (gst_iterator_foreach (children, set_context,
+          context) == GST_ITERATOR_RESYNC);
+  gst_iterator_free (children);
+}
+
 static gint
 compare_name (const GValue * velement, const gchar * name)
 {
diff --git a/gst/gstbin.h b/gst/gstbin.h
index 06cbc74..17d1441 100644
--- a/gst/gstbin.h
+++ b/gst/gstbin.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -41,7 +41,7 @@
 /**
  * GstBinFlags:
  * @GST_BIN_FLAG_NO_RESYNC: don't resync a state change when elements are
- *             added or linked in the bin (Since 1.0.5)
+ *             added or linked in the bin.
  * @GST_BIN_FLAG_LAST: the last enum in the series of flags for bins.
  * Derived classes can use this as first value in a list of flags.
  *
@@ -62,7 +62,7 @@
  * Check if @bin will resync its state change when elements are added and
  * removed.
  *
- * Since: 1.0.5
+ * Since: 1.1.1
  */
 #define GST_BIN_IS_NO_RESYNC(bin)        (GST_OBJECT_FLAG_IS_SET(bin,GST_BIN_FLAG_NO_RESYNC))
 
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c
index 74682dc..8212ec2 100644
--- a/gst/gstbuffer.c
+++ b/gst/gstbuffer.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -201,7 +201,7 @@
 static GstMemory *
 _get_merged_memory (GstBuffer * buffer, guint idx, guint length)
 {
-  GstMemory **mem, *result;
+  GstMemory **mem, *result = NULL;
 
   GST_CAT_LOG (GST_CAT_BUFFER, "buffer %p, idx %u, length %u", buffer, idx,
       length);
@@ -219,11 +219,11 @@
     size = gst_buffer_get_sizes_range (buffer, idx, length, NULL, NULL);
 
     if (G_UNLIKELY (_is_span (mem + idx, length, &poffset, &parent))) {
-      if (GST_MEMORY_IS_NO_SHARE (parent)) {
+      if (!GST_MEMORY_IS_NO_SHARE (parent))
+        result = gst_memory_share (parent, poffset, size);
+      if (!result) {
         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;
@@ -331,6 +331,25 @@
 }
 
 /**
+ * gst_buffer_get_max_memory:
+ *
+ * Get the maximum amount of memory blocks that a buffer can hold. This is a
+ * compile time constant that can be queried with the function.
+ *
+ * When more memory blocks are added, existing memory blocks will be merged
+ * together to make room for the new block.
+ *
+ * Returns: the maximum amount of memory blocks that a buffer can hold.
+ *
+ * Since: 1.2.0
+ */
+guint
+gst_buffer_get_max_memory (void)
+{
+  return GST_BUFFER_MEM_MAX;
+}
+
+/**
  * gst_buffer_copy_into:
  * @dest: a destination #GstBuffer
  * @src: a source #GstBuffer
@@ -344,8 +363,10 @@
  * the memory from @src will be appended to @dest.
  *
  * @flags indicate which fields will be copied.
+ *
+ * Returns: %TRUE if the copying succeeded, %FALSE otherwise.
  */
-void
+gboolean
 gst_buffer_copy_into (GstBuffer * dest, GstBuffer * src,
     GstBufferCopyFlags flags, gsize offset, gsize size)
 {
@@ -353,24 +374,24 @@
   gsize bufsize;
   gboolean region = FALSE;
 
-  g_return_if_fail (dest != NULL);
-  g_return_if_fail (src != NULL);
+  g_return_val_if_fail (dest != NULL, FALSE);
+  g_return_val_if_fail (src != NULL, FALSE);
 
   /* nothing to copy if the buffers are the same */
   if (G_UNLIKELY (dest == src))
-    return;
+    return TRUE;
 
-  g_return_if_fail (gst_buffer_is_writable (dest));
+  g_return_val_if_fail (gst_buffer_is_writable (dest), FALSE);
 
   bufsize = gst_buffer_get_size (src);
-  g_return_if_fail (bufsize >= offset);
+  g_return_val_if_fail (bufsize >= offset, FALSE);
   if (offset > 0)
     region = TRUE;
   if (size == -1)
     size = bufsize - offset;
   if (size < bufsize)
     region = TRUE;
-  g_return_if_fail (bufsize >= offset + size);
+  g_return_val_if_fail (bufsize >= offset + size, FALSE);
 
   GST_CAT_LOG (GST_CAT_BUFFER, "copy %p to %p, offset %" G_GSIZE_FORMAT
       "-%" G_GSIZE_FORMAT "/%" G_GSIZE_FORMAT, src, dest, offset, size,
@@ -400,43 +421,66 @@
   }
 
   if (flags & GST_BUFFER_COPY_MEMORY) {
-    GstMemory *mem;
-    gsize skip, left, len, i, bsize;
+    gsize skip, left, len, dest_len, i, bsize;
+    gboolean deep;
+
+    deep = flags & GST_BUFFER_COPY_DEEP;
 
     len = GST_BUFFER_MEM_LEN (src);
+    dest_len = GST_BUFFER_MEM_LEN (dest);
     left = size;
     skip = offset;
 
     /* copy and make regions of the memory */
     for (i = 0; i < len && left > 0; i++) {
-      mem = GST_BUFFER_MEM_PTR (src, i);
+      GstMemory *mem = GST_BUFFER_MEM_PTR (src, i);
+
       bsize = gst_memory_get_sizes (mem, NULL, NULL);
 
       if (bsize <= skip) {
         /* don't copy buffer */
         skip -= bsize;
       } else {
+        GstMemory *newmem = NULL;
         gsize tocopy;
 
         tocopy = MIN (bsize - skip, left);
-        if (GST_MEMORY_IS_NO_SHARE (mem)) {
-          /* no share, always copy then */
-          mem = gst_memory_copy (mem, skip, tocopy);
-          skip = 0;
-        } else if (tocopy < bsize) {
+
+        if (tocopy < bsize && !deep && !GST_MEMORY_IS_NO_SHARE (mem)) {
           /* we need to clip something */
-          mem = gst_memory_share (mem, skip, tocopy);
-          skip = 0;
-        } else {
-          mem = gst_memory_ref (mem);
+          newmem = gst_memory_share (mem, skip, tocopy);
+          if (newmem)
+            skip = 0;
         }
-        _memory_add (dest, -1, mem, TRUE);
+
+        if (deep || GST_MEMORY_IS_NO_SHARE (mem) || (!newmem && tocopy < bsize)) {
+          /* deep copy or we're not allowed to share this memory
+           * between buffers, always copy then */
+          newmem = gst_memory_copy (mem, skip, tocopy);
+          skip = 0;
+        } else if (!newmem) {
+          newmem = gst_memory_ref (mem);
+        }
+
+        if (!newmem) {
+          gst_buffer_remove_memory_range (dest, dest_len, -1);
+          return FALSE;
+        }
+
+        _memory_add (dest, -1, newmem, TRUE);
         left -= tocopy;
       }
     }
     if (flags & GST_BUFFER_COPY_MERGE) {
+      GstMemory *mem;
+
       len = GST_BUFFER_MEM_LEN (dest);
-      _replace_memory (dest, len, 0, len, _get_merged_memory (dest, 0, len));
+      mem = _get_merged_memory (dest, 0, len);
+      if (!mem) {
+        gst_buffer_remove_memory_range (dest, dest_len, -1);
+        return FALSE;
+      }
+      _replace_memory (dest, len, 0, len, mem);
     }
   }
 
@@ -457,6 +501,8 @@
       }
     }
   }
+
+  return TRUE;
 }
 
 static GstBuffer *
@@ -470,7 +516,8 @@
   copy = gst_buffer_new ();
 
   /* we simply copy everything from our parent */
-  gst_buffer_copy_into (copy, buffer, GST_BUFFER_COPY_ALL, 0, -1);
+  if (!gst_buffer_copy_into (copy, buffer, GST_BUFFER_COPY_ALL, 0, -1))
+    gst_buffer_replace (&copy, NULL);
 
   return copy;
 }
@@ -714,12 +761,14 @@
     gsize maxsize, gsize offset, gsize size, gpointer user_data,
     GDestroyNotify notify)
 {
+  GstMemory *mem;
   GstBuffer *newbuf;
 
   newbuf = gst_buffer_new ();
-  gst_buffer_append_memory (newbuf,
-      gst_memory_new_wrapped (flags, data, maxsize, offset, size,
-          user_data, notify));
+  mem =
+      gst_memory_new_wrapped (flags, data, maxsize, offset, size, user_data,
+      notify);
+  _memory_add (newbuf, -1, mem, TRUE);
 
   return newbuf;
 }
@@ -746,7 +795,8 @@
  * gst_buffer_n_memory:
  * @buffer: a #GstBuffer.
  *
- * Get the amount of memory blocks that this buffer has.
+ * Get the amount of memory blocks that this buffer has. This amount is never
+ * larger than what gst_buffer_get_max_memory() returns.
  *
  * Returns: (transfer full): the amount of memory block in this buffer.
  */
@@ -765,6 +815,9 @@
  *
  * Prepend the memory block @mem to @buffer. This function takes
  * ownership of @mem and thus doesn't increase its refcount.
+ *
+ * This function is identical to gst_buffer_insert_memory() with an index of 0.
+ * See gst_buffer_insert_memory() for more details.
  */
 void
 gst_buffer_prepend_memory (GstBuffer * buffer, GstMemory * mem)
@@ -779,6 +832,9 @@
  *
  * Append the memory block @mem to @buffer. This function takes
  * ownership of @mem and thus doesn't increase its refcount.
+ *
+ * This function is identical to gst_buffer_insert_memory() with an index of -1.
+ * See gst_buffer_insert_memory() for more details.
  */
 void
 gst_buffer_append_memory (GstBuffer * buffer, GstMemory * mem)
@@ -794,6 +850,10 @@
  *
  * Insert the memory block @mem to @buffer at @idx. This function takes ownership
  * of @mem and thus doesn't increase its refcount.
+ *
+ * Only gst_buffer_get_max_memory() can be added to a buffer. If more memory is
+ * added, existing memory blocks will automatically be merged to make room for
+ * the new memory.
  */
 void
 gst_buffer_insert_memory (GstBuffer * buffer, gint idx, GstMemory * mem)
@@ -1255,19 +1315,22 @@
  *
  * Set the total size of the @length memory blocks starting at @idx in
  * @buffer
+ *
+ * Returns: %TRUE if resizing succeeded, %FALSE otherwise.
  */
-void
+gboolean
 gst_buffer_resize_range (GstBuffer * buffer, guint idx, gint length,
     gssize offset, gssize size)
 {
   guint i, len, end;
   gsize bsize, bufsize, bufoffs, bufmax;
 
-  g_return_if_fail (gst_buffer_is_writable (buffer));
-  g_return_if_fail (size >= -1);
+  g_return_val_if_fail (gst_buffer_is_writable (buffer), FALSE);
+  g_return_val_if_fail (size >= -1, FALSE);
+
   len = GST_BUFFER_MEM_LEN (buffer);
-  g_return_if_fail ((len == 0 && idx == 0 && length == -1) ||
-      (length == -1 && idx < len) || (length + idx <= len));
+  g_return_val_if_fail ((len == 0 && idx == 0 && length == -1) ||
+      (length == -1 && idx < len) || (length + idx <= len), FALSE);
 
   if (length == -1)
     length = len - idx;
@@ -1280,17 +1343,17 @@
 
   /* we can't go back further than the current offset or past the end of the
    * buffer */
-  g_return_if_fail ((offset < 0 && bufoffs >= -offset) || (offset >= 0
-          && bufoffs + offset <= bufmax));
+  g_return_val_if_fail ((offset < 0 && bufoffs >= -offset) || (offset >= 0
+          && bufoffs + offset <= bufmax), FALSE);
   if (size == -1) {
-    g_return_if_fail (bufsize >= offset);
+    g_return_val_if_fail (bufsize >= offset, FALSE);
     size = bufsize - offset;
   }
-  g_return_if_fail (bufmax >= bufoffs + offset + size);
+  g_return_val_if_fail (bufmax >= bufoffs + offset + size, FALSE);
 
   /* no change */
   if (offset == 0 && size == bufsize)
-    return;
+    return TRUE;
 
   end = idx + length;
   /* copy and trim */
@@ -1319,13 +1382,17 @@
       if (gst_memory_is_writable (mem)) {
         gst_memory_resize (mem, offset, left);
       } else {
-        GstMemory *newmem;
+        GstMemory *newmem = NULL;
 
-        if (GST_MEMORY_IS_NO_SHARE (mem))
-          newmem = gst_memory_copy (mem, offset, left);
-        else
+        if (!GST_MEMORY_IS_NO_SHARE (mem))
           newmem = gst_memory_share (mem, offset, left);
 
+        if (!newmem)
+          newmem = gst_memory_copy (mem, offset, left);
+
+        if (newmem == NULL)
+          return FALSE;
+
         gst_memory_lock (newmem, GST_LOCK_FLAG_EXCLUSIVE);
         GST_BUFFER_MEM_PTR (buffer, i) = newmem;
         gst_memory_unlock (mem, GST_LOCK_FLAG_EXCLUSIVE);
@@ -1336,6 +1403,8 @@
     offset = noffs;
     size -= left;
   }
+
+  return TRUE;
 }
 
 /**
@@ -1724,7 +1793,8 @@
   GST_CAT_LOG (GST_CAT_BUFFER, "new region copy %p of %p %" G_GSIZE_FORMAT
       "-%" G_GSIZE_FORMAT, copy, buffer, offset, size);
 
-  gst_buffer_copy_into (copy, buffer, flags, offset, size);
+  if (!gst_buffer_copy_into (copy, buffer, flags, offset, size))
+    gst_buffer_replace (&copy, NULL);
 
   return copy;
 }
@@ -2013,3 +2083,31 @@
   }
   return res;
 }
+
+/**
+ * gst_buffer_extract_dup:
+ * @buffer: a #GstBuffer
+ * @offset: the offset to extract
+ * @size: the size to extract
+ * @dest: (array length=dest_size) (element-type guint8) (out): A pointer where
+ *  the destination array will be written.
+ * @dest_size: (out): A location where the size of @dest can be written
+ *
+ * Extracts a copy of at most @size bytes the data at @offset into a #GBytes.
+ * @dest must be freed using g_free() when done.
+ *
+ * Since: 3.2
+ */
+
+void
+gst_buffer_extract_dup (GstBuffer * buffer, gsize offset, gsize size,
+    gpointer * dest, gsize * dest_size)
+{
+  gsize real_size;
+
+  real_size = gst_buffer_get_size (buffer);
+
+  *dest = g_malloc (MIN (real_size - offset, size));
+
+  *dest_size = gst_buffer_extract (buffer, offset, *dest, size);
+}
diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h
index 37fc00f..c241792 100644
--- a/gst/gstbuffer.h
+++ b/gst/gstbuffer.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -253,6 +253,8 @@
 
 GType       gst_buffer_get_type            (void);
 
+guint       gst_buffer_get_max_memory      (void);
+
 /* allocation */
 GstBuffer * gst_buffer_new                 (void);
 GstBuffer * gst_buffer_new_allocate        (GstAllocator * allocator, gsize size,
@@ -293,7 +295,7 @@
 
 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,
+gboolean    gst_buffer_resize_range        (GstBuffer *buffer, guint idx, gint length,
                                             gssize offset, gssize size);
 
 gsize       gst_buffer_get_sizes           (GstBuffer *buffer, gsize *offset, gsize *maxsize);
@@ -306,6 +308,9 @@
 gboolean    gst_buffer_map                 (GstBuffer *buffer, GstMapInfo *info, GstMapFlags flags);
 
 void        gst_buffer_unmap               (GstBuffer *buffer, GstMapInfo *info);
+void        gst_buffer_extract_dup         (GstBuffer *buffer, gsize offset,
+                                            gsize size, gpointer *dest,
+                                            gsize *dest_size);
 
 /* refcounting */
 /**
@@ -375,13 +380,17 @@
  * @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 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
+ *   duration, offset and offset_end should be copied
+ * @GST_BUFFER_COPY_MEMORY: flag indicating that buffer memory should be reffed
+ *   and appended to already existing memory. Unless the memory is marked as
+ *   NO_SHARE, no actual copy of the memory is made but it is simply reffed.
+ *   Add @GST_BUFFER_COPY_DEEP to force a real copy.
  * @GST_BUFFER_COPY_MERGE: flag indicating that buffer memory should be
- * merged
+ *   merged
  * @GST_BUFFER_COPY_META: flag indicating that buffer meta should be
- * copied
+ *   copied
+ * @GST_BUFFER_COPY_DEEP: flag indicating that memory should always be
+ *   copied instead of reffed (Since 1.2)
  *
  * A set of flags that can be provided to the gst_buffer_copy_into()
  * function to specify which items should be copied.
@@ -392,7 +401,8 @@
   GST_BUFFER_COPY_TIMESTAMPS     = (1 << 1),
   GST_BUFFER_COPY_META           = (1 << 2),
   GST_BUFFER_COPY_MEMORY         = (1 << 3),
-  GST_BUFFER_COPY_MERGE          = (1 << 4)
+  GST_BUFFER_COPY_MERGE          = (1 << 4),
+  GST_BUFFER_COPY_DEEP           = (1 << 5)
 } GstBufferCopyFlags;
 
 /**
@@ -413,7 +423,7 @@
 #define GST_BUFFER_COPY_ALL  ((GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY))
 
 /* copies memory or metadata into newly allocated buffer */
-void            gst_buffer_copy_into            (GstBuffer *dest, GstBuffer *src,
+gboolean        gst_buffer_copy_into            (GstBuffer *dest, GstBuffer *src,
                                                  GstBufferCopyFlags flags,
                                                  gsize offset, gsize size);
 
diff --git a/gst/gstbufferlist.c b/gst/gstbufferlist.c
index e922e8a..565ed5b 100644
--- a/gst/gstbufferlist.c
+++ b/gst/gstbufferlist.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstbufferlist.h b/gst/gstbufferlist.h
index eff9d9c..4a6a99f 100644
--- a/gst/gstbufferlist.h
+++ b/gst/gstbufferlist.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BUFFER_LIST_H__
diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c
index 2a4abbe..edd9ec9 100644
--- a/gst/gstbufferpool.c
+++ b/gst/gstbufferpool.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -825,8 +825,7 @@
   }
   g_value_init (&option_value, G_TYPE_STRING);
   g_value_set_string (&option_value, option);
-  gst_value_array_append_value ((GValue *) value, &option_value);
-  g_value_unset (&option_value);
+  gst_value_array_append_and_take_value ((GValue *) value, &option_value);
 }
 
 /**
diff --git a/gst/gstbufferpool.h b/gst/gstbufferpool.h
index b718f99..9806a6d 100644
--- a/gst/gstbufferpool.h
+++ b/gst/gstbufferpool.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstbus.c b/gst/gstbus.c
index bd1c209..b5343ab 100644
--- a/gst/gstbus.c
+++ b/gst/gstbus.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -188,12 +188,8 @@
    * A message has been posted on the bus. This signal is emitted from the
    * thread that posted the message so one has to be careful with locking.
    *
-   * This signal will not be emitted by default, you have to set up
-   * gst_bus_sync_signal_handler() as a sync handler if you want this
-   * signal to be emitted when a message is posted on the bus, like this:
-   * <programlisting>
-   * gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
-   * </programlisting>
+   * This signal will not be emitted by default, you have to call
+   * gst_bus_enable_sync_message_emission() before.
    */
   gst_bus_signals[SYNC_MESSAGE] =
       g_signal_new ("sync-message", G_TYPE_FROM_CLASS (klass),
@@ -1208,7 +1204,7 @@
 gst_bus_disable_sync_message_emission (GstBus * bus)
 {
   g_return_if_fail (GST_IS_BUS (bus));
-  g_return_if_fail (bus->priv->num_signal_watchers == 0);
+  g_return_if_fail (bus->priv->num_sync_message_emitters > 0);
 
   GST_OBJECT_LOCK (bus);
   bus->priv->num_sync_message_emitters--;
diff --git a/gst/gstbus.h b/gst/gstbus.h
index ed05ddb..5821770 100644
--- a/gst/gstbus.h
+++ b/gst/gstbus.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BUS_H__
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index 7e695c0..12c49eb 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -71,11 +71,17 @@
 
 #define DEBUG_REFCOUNT
 
+typedef struct _GstCapsArrayElement
+{
+  GstStructure *structure;
+  GstCapsFeatures *features;
+} GstCapsArrayElement;
+
 typedef struct _GstCapsImpl
 {
   GstCaps caps;
 
-  GPtrArray *array;
+  GArray *array;
 } GstCapsImpl;
 
 #define GST_CAPS_ARRAY(c) (((GstCapsImpl *)(c))->array)
@@ -96,15 +102,20 @@
 #define CAPS_IS_EMPTY_SIMPLE(caps)					\
   ((GST_CAPS_ARRAY (caps) == NULL) || (GST_CAPS_LEN (caps) == 0))
 
+#define gst_caps_features_copy_conditional(f) ((f && (gst_caps_features_is_any (f) || !gst_caps_features_is_equal (f, GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))) ? gst_caps_features_copy (f) : NULL)
+
 /* quick way to get a caps structure at an index without doing a type or array
  * length check */
 #define gst_caps_get_structure_unchecked(caps, index) \
-     ((GstStructure *)g_ptr_array_index (GST_CAPS_ARRAY (caps), (index)))
+     (g_array_index (GST_CAPS_ARRAY (caps), GstCapsArrayElement, (index)).structure)
+#define gst_caps_get_features_unchecked(caps, index) \
+     (g_array_index (GST_CAPS_ARRAY (caps), GstCapsArrayElement, (index)).features)
 /* quick way to append a structure without checking the args */
-#define gst_caps_append_structure_unchecked(caps, structure) G_STMT_START{\
-  GstStructure *__s=structure;                                      \
-  if (gst_structure_set_parent_refcount (__s, &GST_MINI_OBJECT_REFCOUNT(caps)))         \
-    g_ptr_array_add (GST_CAPS_ARRAY (caps), __s);                             \
+#define gst_caps_append_structure_unchecked(caps, s, f) G_STMT_START{\
+  GstCapsArrayElement __e={s, f};                                      \
+  if (gst_structure_set_parent_refcount (__e.structure, &GST_MINI_OBJECT_REFCOUNT(caps)) && \
+      (!__e.features || gst_caps_features_set_parent_refcount (__e.features, &GST_MINI_OBJECT_REFCOUNT(caps))))         \
+    g_array_append_val (GST_CAPS_ARRAY (caps), __e);                             \
 }G_STMT_END
 
 /* lock to protect multiple invocations of static caps to caps conversion */
@@ -138,6 +149,7 @@
 {
   GstCaps *newcaps;
   GstStructure *structure;
+  GstCapsFeatures *features;
   guint i, n;
 
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
@@ -151,7 +163,9 @@
 
   for (i = 0; i < n; i++) {
     structure = gst_caps_get_structure_unchecked (caps, i);
-    gst_caps_append_structure (newcaps, gst_structure_copy (structure));
+    features = gst_caps_get_features_unchecked (caps, i);
+    gst_caps_append_structure_full (newcaps, gst_structure_copy (structure),
+        gst_caps_features_copy_conditional (features));
   }
 
   return newcaps;
@@ -162,6 +176,7 @@
 _gst_caps_free (GstCaps * caps)
 {
   GstStructure *structure;
+  GstCapsFeatures *features;
   guint i, len;
 
   /* The refcount must be 0, but since we're only called by gst_caps_unref,
@@ -170,11 +185,16 @@
   /* This can be used to get statistics about caps sizes */
   /*GST_CAT_INFO (GST_CAT_CAPS, "caps size: %d", len); */
   for (i = 0; i < len; i++) {
-    structure = (GstStructure *) gst_caps_get_structure_unchecked (caps, i);
+    structure = gst_caps_get_structure_unchecked (caps, i);
     gst_structure_set_parent_refcount (structure, NULL);
     gst_structure_free (structure);
+    features = gst_caps_get_features_unchecked (caps, i);
+    if (features) {
+      gst_caps_features_set_parent_refcount (features, NULL);
+      gst_caps_features_free (features);
+    }
   }
-  g_ptr_array_free (GST_CAPS_ARRAY (caps), TRUE);
+  g_array_free (GST_CAPS_ARRAY (caps), TRUE);
 
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_CAPS, "freeing caps %p", caps);
@@ -194,7 +214,8 @@
    * in practice
    * GST_CAPS_ARRAY (caps) = g_ptr_array_sized_new (32);
    */
-  GST_CAPS_ARRAY (caps) = g_ptr_array_new ();
+  GST_CAPS_ARRAY (caps) =
+      g_array_new (FALSE, TRUE, sizeof (GstCapsArrayElement));
 }
 
 /**
@@ -260,7 +281,7 @@
   caps = gst_caps_new_empty ();
   structure = gst_structure_new_empty (media_type);
   if (structure)
-    gst_caps_append_structure_unchecked (caps, structure);
+    gst_caps_append_structure_unchecked (caps, structure, NULL);
 
   return caps;
 }
@@ -292,7 +313,7 @@
   va_end (var_args);
 
   if (structure)
-    gst_caps_append_structure_unchecked (caps, structure);
+    gst_caps_append_structure_unchecked (caps, structure, NULL);
   else
     gst_caps_replace (&caps, NULL);
 
@@ -342,7 +363,7 @@
   caps = gst_caps_new_empty ();
 
   while (structure) {
-    gst_caps_append_structure_unchecked (caps, structure);
+    gst_caps_append_structure_unchecked (caps, structure, NULL);
     structure = va_arg (var_args, GstStructure *);
   }
 
@@ -426,16 +447,44 @@
 
 /* manipulation */
 
+static void
+gst_caps_remove_and_get_structure_and_features (GstCaps * caps, guint idx,
+    GstStructure ** s, GstCapsFeatures ** f)
+{
+  GstStructure *s_;
+  GstCapsFeatures *f_;
+
+  s_ = gst_caps_get_structure_unchecked (caps, idx);
+  f_ = gst_caps_get_features_unchecked (caps, idx);
+
+  /* don't use index_fast, gst_caps_simplify relies on the order */
+  g_array_remove_index (GST_CAPS_ARRAY (caps), idx);
+
+  gst_structure_set_parent_refcount (s_, NULL);
+  if (f_) {
+    gst_caps_features_set_parent_refcount (f_, NULL);
+  }
+
+  *s = s_;
+  *f = f_;
+}
+
 static GstStructure *
 gst_caps_remove_and_get_structure (GstCaps * caps, guint idx)
 {
-  /* don't use index_fast, gst_caps_simplify relies on the order */
-  GstStructure *s = g_ptr_array_remove_index (GST_CAPS_ARRAY (caps), idx);
+  GstStructure *s;
+  GstCapsFeatures *f;
 
-  gst_structure_set_parent_refcount (s, NULL);
+  gst_caps_remove_and_get_structure_and_features (caps, idx, &s, &f);
+
+  if (f)
+    gst_caps_features_free (f);
+
   return s;
 }
 
+
+
 /**
  * gst_caps_steal_structure:
  * @caps: the #GstCaps to retrieve from
@@ -472,6 +521,7 @@
 gst_caps_append (GstCaps * caps1, GstCaps * caps2)
 {
   GstStructure *structure;
+  GstCapsFeatures *features;
   int i;
 
   g_return_if_fail (GST_IS_CAPS (caps1));
@@ -485,8 +535,9 @@
     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_remove_and_get_structure_and_features (caps2, 0, &structure,
+          &features);
+      gst_caps_append_structure_unchecked (caps1, structure, features);
     }
     gst_caps_unref (caps2);     /* guaranteed to free it */
   }
@@ -508,6 +559,7 @@
 gst_caps_merge (GstCaps * caps1, GstCaps * caps2)
 {
   GstStructure *structure;
+  GstCapsFeatures *features;
   int i;
   GstCaps *result;
 
@@ -524,8 +576,9 @@
     caps2 = gst_caps_make_writable (caps2);
 
     for (i = GST_CAPS_LEN (caps2); i; i--) {
-      structure = gst_caps_remove_and_get_structure (caps2, 0);
-      caps1 = gst_caps_merge_structure (caps1, structure);
+      gst_caps_remove_and_get_structure_and_features (caps2, 0, &structure,
+          &features);
+      caps1 = gst_caps_merge_structure_full (caps1, structure, features);
     }
     gst_caps_unref (caps2);
     result = caps1;
@@ -559,7 +612,28 @@
   g_return_if_fail (IS_WRITABLE (caps));
 
   if (G_LIKELY (structure)) {
-    gst_caps_append_structure_unchecked (caps, structure);
+    gst_caps_append_structure_unchecked (caps, structure, NULL);
+  }
+}
+
+/**
+ * gst_caps_append_structure_full:
+ * @caps: the #GstCaps that will be appended to
+ * @structure: (transfer full): the #GstStructure to append
+ * @features: (transfer full) (allow-none): the #GstCapsFeatures to append
+ *
+ * Appends @structure with @features to @caps.  The structure is not copied; @caps
+ * becomes the owner of @structure.
+ */
+void
+gst_caps_append_structure_full (GstCaps * caps, GstStructure * structure,
+    GstCapsFeatures * features)
+{
+  g_return_if_fail (GST_IS_CAPS (caps));
+  g_return_if_fail (IS_WRITABLE (caps));
+
+  if (G_LIKELY (structure)) {
+    gst_caps_append_structure_unchecked (caps, structure, features);
   }
 }
 
@@ -597,6 +671,7 @@
 gst_caps_merge_structure (GstCaps * caps, GstStructure * structure)
 {
   GstStructure *structure1;
+  GstCapsFeatures *features1;
   int i;
   gboolean unique = TRUE;
 
@@ -608,15 +683,22 @@
   /* 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)) {
+    features1 = gst_caps_get_features_unchecked (caps, i);
+    if (!features1)
+      features1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
+    /* if structure is a subset of structure1 and the
+     * there are no existing features, then skip it */
+    if (gst_caps_features_is_equal (features1,
+            GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY)
+        && gst_structure_is_subset (structure, structure1)) {
       unique = FALSE;
       break;
     }
   }
   if (unique) {
     caps = gst_caps_make_writable (caps);
-    gst_caps_append_structure_unchecked (caps, structure);
+    gst_caps_append_structure_unchecked (caps, structure, NULL);
   } else {
     gst_structure_free (structure);
   }
@@ -624,6 +706,65 @@
 }
 
 /**
+ * gst_caps_merge_structure_full:
+ * @caps: (transfer full): the #GstCaps to merge into
+ * @structure: (transfer full): the #GstStructure to merge
+ * @features: (transfer full) (allow-none): the #GstCapsFeatures to merge
+ *
+ * Appends @structure with @features to @caps if its not already expressed by @caps.
+ *
+ * Returns: (transfer full): the merged caps.
+ */
+GstCaps *
+gst_caps_merge_structure_full (GstCaps * caps, GstStructure * structure,
+    GstCapsFeatures * features)
+{
+  GstStructure *structure1;
+  GstCapsFeatures *features1, *features_tmp;
+  int i;
+  gboolean unique = TRUE;
+
+  g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
+
+  if (G_UNLIKELY (structure == NULL))
+    return caps;
+
+  /* To make comparisons easier below */
+  features_tmp = features ? features : GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
+  /* check each structure */
+  for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) {
+    structure1 = gst_caps_get_structure_unchecked (caps, i);
+    features1 = gst_caps_get_features_unchecked (caps, i);
+    if (!features1)
+      features1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+    /* if structure is a subset of structure1 and the
+     * the features are a subset, then skip it */
+    /* FIXME: We only skip if none of the features are
+     * ANY and are still equal. That way all ANY structures
+     * show up in the caps and no non-ANY structures are
+     * swallowed by ANY structures
+     */
+    if (((!gst_caps_features_is_any (features_tmp)
+                || gst_caps_features_is_any (features1))
+            && gst_caps_features_is_equal (features_tmp, features1))
+        && gst_structure_is_subset (structure, structure1)) {
+      unique = FALSE;
+      break;
+    }
+  }
+  if (unique) {
+    caps = gst_caps_make_writable (caps);
+    gst_caps_append_structure_unchecked (caps, structure, features);
+  } else {
+    gst_structure_free (structure);
+    if (features)
+      gst_caps_features_free (features);
+  }
+  return caps;
+}
+
+/**
  * gst_caps_get_size:
  * @caps: a #GstCaps
  *
@@ -672,6 +813,72 @@
 }
 
 /**
+ * gst_caps_get_features:
+ * @caps: a #GstCaps
+ * @index: the index of the structure
+ *
+ * Finds the features in @caps that has the index @index, and
+ * returns it.
+ *
+ * WARNING: This function takes a const GstCaps *, but returns a
+ * non-const GstCapsFeatures *.  This is for programming convenience --
+ * the caller should be aware that structures inside a constant
+ * #GstCaps should not be modified. However, if you know the caps
+ * are writable, either because you have just copied them or made
+ * them writable with gst_caps_make_writable(), you may modify the
+ * features returned in the usual way, e.g. with functions like
+ * gst_caps_features_add().
+ *
+ * You do not need to free or unref the structure returned, it
+ * belongs to the #GstCaps.
+ *
+ * Returns: (transfer none): a pointer to the #GstCapsFeatures corresponding
+ *     to @index
+ */
+GstCapsFeatures *
+gst_caps_get_features (const GstCaps * caps, guint index)
+{
+  GstCapsFeatures *features;
+
+  g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
+  g_return_val_if_fail (index < GST_CAPS_LEN (caps), NULL);
+
+  features = gst_caps_get_features_unchecked (caps, index);
+  if (!features)
+    features = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
+  return features;
+}
+
+/**
+ * gst_caps_set_features:
+ * @caps: a #GstCaps
+ * @index: the index of the structure
+ * @features: (allow-none) (transfer full): the #GstFeatures to set
+ *
+ * Sets the #GstCapsFeatures @features for the structure at @index.
+ */
+void
+gst_caps_set_features (GstCaps * caps, guint index, GstCapsFeatures * features)
+{
+  GstCapsFeatures **storage, *old;
+
+  g_return_if_fail (caps != NULL);
+  g_return_if_fail (index <= gst_caps_get_size (caps));
+  g_return_if_fail (IS_WRITABLE (caps));
+
+  storage = &gst_caps_get_features_unchecked (caps, index);
+  old = *storage;
+  *storage = features;
+
+  if (features)
+    gst_caps_features_set_parent_refcount (features, &GST_CAPS_REFCOUNT (caps));
+
+  if (old)
+    gst_caps_features_free (old);
+}
+
+/**
  * gst_caps_copy_nth:
  * @caps: the #GstCaps to copy
  * @nth: the nth structure to copy
@@ -686,6 +893,7 @@
 {
   GstCaps *newcaps;
   GstStructure *structure;
+  GstCapsFeatures *features;
 
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
@@ -694,8 +902,10 @@
 
   if (G_LIKELY (GST_CAPS_LEN (caps) > nth)) {
     structure = gst_caps_get_structure_unchecked (caps, nth);
+    features = gst_caps_get_features_unchecked (caps, nth);
     gst_caps_append_structure_unchecked (newcaps,
-        gst_structure_copy (structure));
+        gst_structure_copy (structure),
+        gst_caps_features_copy_conditional (features));
   }
 
   return newcaps;
@@ -872,12 +1082,17 @@
 gst_caps_is_fixed (const GstCaps * caps)
 {
   GstStructure *structure;
+  GstCapsFeatures *features;
 
   g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
 
   if (GST_CAPS_LEN (caps) != 1)
     return FALSE;
 
+  features = gst_caps_get_features (caps, 0);
+  if (features && gst_caps_features_is_any (features))
+    return FALSE;
+
   structure = gst_caps_get_structure_unchecked (caps, 0);
 
   return gst_structure_foreach (structure, gst_caps_is_fixed_foreach, NULL);
@@ -897,14 +1112,22 @@
 gst_caps_is_equal_fixed (const GstCaps * caps1, const GstCaps * caps2)
 {
   GstStructure *struct1, *struct2;
+  GstCapsFeatures *features1, *features2;
 
   g_return_val_if_fail (gst_caps_is_fixed (caps1), FALSE);
   g_return_val_if_fail (gst_caps_is_fixed (caps2), FALSE);
 
   struct1 = gst_caps_get_structure_unchecked (caps1, 0);
+  features1 = gst_caps_get_features_unchecked (caps1, 0);
+  if (!features1)
+    features1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
   struct2 = gst_caps_get_structure_unchecked (caps2, 0);
+  features2 = gst_caps_get_features_unchecked (caps2, 0);
+  if (!features2)
+    features2 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
 
-  return gst_structure_is_equal (struct1, struct2);
+  return gst_structure_is_equal (struct1, struct2) &&
+      gst_caps_features_is_equal (features1, features2);
 }
 
 /**
@@ -933,8 +1156,6 @@
  * @superset: a potentially greater #GstCaps
  *
  * Checks if all caps represented by @subset are also represented by @superset.
- * <note>This function does not work reliably if optional properties for caps
- * are included on one caps and omitted on the other.</note>
  *
  * Returns: %TRUE if @subset is a subset of @superset
  */
@@ -942,6 +1163,7 @@
 gst_caps_is_subset (const GstCaps * subset, const GstCaps * superset)
 {
   GstStructure *s1, *s2;
+  GstCapsFeatures *f1, *f2;
   gboolean ret = TRUE;
   gint i, j;
 
@@ -956,8 +1178,16 @@
   for (i = GST_CAPS_LEN (subset) - 1; i >= 0; i--) {
     for (j = GST_CAPS_LEN (superset) - 1; j >= 0; j--) {
       s1 = gst_caps_get_structure_unchecked (subset, i);
+      f1 = gst_caps_get_features_unchecked (subset, i);
+      if (!f1)
+        f1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
       s2 = gst_caps_get_structure_unchecked (superset, j);
-      if (gst_structure_is_subset (s1, s2)) {
+      f2 = gst_caps_get_features_unchecked (superset, j);
+      if (!f2)
+        f2 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+      if ((!gst_caps_features_is_any (f1) || gst_caps_features_is_any (f2)) &&
+          gst_caps_features_is_equal (f1, f2)
+          && gst_structure_is_subset (s1, s2)) {
         /* If we found a superset, continue with the next
          * subset structure */
         break;
@@ -1011,13 +1241,57 @@
 }
 
 /**
+ * gst_caps_is_subset_structure_full:
+ * @caps: a #GstCaps
+ * @structure: a potential #GstStructure subset of @caps
+ * @features: (allow-none): a #GstCapsFeatures for @structure
+ *
+ * Checks if @structure is a subset of @caps. See gst_caps_is_subset()
+ * for more information.
+ *
+ * Returns: %TRUE if @structure is a subset of @caps
+ */
+gboolean
+gst_caps_is_subset_structure_full (const GstCaps * caps,
+    const GstStructure * structure, const GstCapsFeatures * features)
+{
+  GstStructure *s;
+  GstCapsFeatures *f;
+  gint i;
+
+  g_return_val_if_fail (caps != NULL, FALSE);
+  g_return_val_if_fail (structure != NULL, FALSE);
+
+  if (CAPS_IS_ANY (caps))
+    return TRUE;
+  if (CAPS_IS_EMPTY (caps))
+    return FALSE;
+
+  if (!features)
+    features = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
+  for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) {
+    s = gst_caps_get_structure_unchecked (caps, i);
+    f = gst_caps_get_features_unchecked (caps, i);
+    if (!f)
+      f = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+    if ((!gst_caps_features_is_any (features) || gst_caps_features_is_any (f))
+        && gst_caps_features_is_equal (features, f)
+        && gst_structure_is_subset (structure, s)) {
+      /* If we found a superset return TRUE */
+      return TRUE;
+    }
+  }
+
+  return FALSE;
+}
+
+/**
  * gst_caps_is_equal:
  * @caps1: a #GstCaps
  * @caps2: another #GstCaps
  *
  * Checks if the given caps represent the same set of caps.
- * <note>This function does not work reliably if optional properties for caps
- * are included on one caps and omitted on the other.</note>
  *
  * Returns: TRUE if both caps are equal.
  */
@@ -1049,6 +1323,8 @@
 gst_caps_is_strictly_equal (const GstCaps * caps1, const GstCaps * caps2)
 {
   int i;
+  GstStructure *s1, *s2;
+  GstCapsFeatures *f1, *f2;
 
   g_return_val_if_fail (GST_IS_CAPS (caps1), FALSE);
   g_return_val_if_fail (GST_IS_CAPS (caps2), FALSE);
@@ -1060,8 +1336,18 @@
     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)))
+    s1 = gst_caps_get_structure_unchecked (caps1, i);
+    f1 = gst_caps_get_features_unchecked (caps1, i);
+    if (!f1)
+      f1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+    s2 = gst_caps_get_structure_unchecked (caps2, i);
+    f2 = gst_caps_get_features_unchecked (caps2, i);
+    if (!f2)
+      f2 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
+    if (gst_caps_features_is_any (f1) != gst_caps_features_is_any (f2) ||
+        !gst_caps_features_is_equal (f1, f2) ||
+        !gst_structure_is_equal (s1, s2))
       return FALSE;
   }
 
@@ -1087,6 +1373,8 @@
   guint j, k, len1, len2;
   GstStructure *struct1;
   GstStructure *struct2;
+  GstCapsFeatures *features1;
+  GstCapsFeatures *features2;
 
   g_return_val_if_fail (GST_IS_CAPS (caps1), FALSE);
   g_return_val_if_fail (GST_IS_CAPS (caps2), FALSE);
@@ -1128,14 +1416,19 @@
     /* subset index stays 0 until i reaches superset->structs->len, then it
      * counts up from 1 to subset->structs->len - 1 */
     k = (i > j) ? (i - j) : 0;  /* MAX (0, i - j) */
-
     /* now run the diagonal line, end condition is the left or bottom
      * border */
     while (k < len2) {
       struct1 = gst_caps_get_structure_unchecked (caps1, j);
+      features1 = gst_caps_get_features_unchecked (caps1, j);
+      if (!features1)
+        features1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
       struct2 = gst_caps_get_structure_unchecked (caps2, k);
-
-      if (gst_structure_can_intersect (struct1, struct2)) {
+      features2 = gst_caps_get_features_unchecked (caps2, k);
+      if (!features2)
+        features2 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+      if (gst_caps_features_is_equal (features1, features2) &&
+          gst_structure_can_intersect (struct1, struct2)) {
         return TRUE;
       }
       /* move down left */
@@ -1145,6 +1438,7 @@
       j--;
     }
   }
+
   return FALSE;
 }
 
@@ -1153,9 +1447,10 @@
 {
   guint64 i;                    /* index can be up to 2 * G_MAX_UINT */
   guint j, k, len1, len2;
-
   GstStructure *struct1;
   GstStructure *struct2;
+  GstCapsFeatures *features1;
+  GstCapsFeatures *features2;
   GstCaps *dest;
   GstStructure *istruct;
 
@@ -1170,11 +1465,11 @@
   /* one of the caps is any, just copy the other caps */
   if (G_UNLIKELY (CAPS_IS_ANY (caps1)))
     return gst_caps_ref (caps2);
+
   if (G_UNLIKELY (CAPS_IS_ANY (caps2)))
     return gst_caps_ref (caps1);
 
   dest = gst_caps_new_empty ();
-
   /* run zigzag on top line then right line, this preserves the caps order
    * much better than a simple loop.
    *
@@ -1199,16 +1494,30 @@
     /* caps2 index stays 0 until i reaches GST_CAPS_LEN (caps1), then it counts
      * up from 1 to GST_CAPS_LEN (caps2) - 1 */
     k = (i > j) ? (i - j) : 0;  /* MAX (0, i - j) */
-
     /* now run the diagonal line, end condition is the left or bottom
      * border */
     while (k < len2) {
       struct1 = gst_caps_get_structure_unchecked (caps1, j);
+      features1 = gst_caps_get_features_unchecked (caps1, j);
+      if (!features1)
+        features1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
       struct2 = gst_caps_get_structure_unchecked (caps2, k);
-
-      istruct = gst_structure_intersect (struct1, struct2);
-
-      dest = gst_caps_merge_structure (dest, istruct);
+      features2 = gst_caps_get_features_unchecked (caps2, k);
+      if (!features2)
+        features2 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+      if (gst_caps_features_is_equal (features1, features2)) {
+        istruct = gst_structure_intersect (struct1, struct2);
+        if (istruct) {
+          if (gst_caps_features_is_any (features1))
+            dest =
+                gst_caps_merge_structure_full (dest, istruct,
+                gst_caps_features_copy_conditional (features2));
+          else
+            dest =
+                gst_caps_merge_structure_full (dest, istruct,
+                gst_caps_features_copy_conditional (features1));
+        }
+      }
       /* move down left */
       k++;
       if (G_UNLIKELY (j == 0))
@@ -1237,9 +1546,10 @@
 {
   guint i;
   guint j, len1, len2;
-
   GstStructure *struct1;
   GstStructure *struct2;
+  GstCapsFeatures *features1;
+  GstCapsFeatures *features2;
   GstCaps *dest;
   GstStructure *istruct;
 
@@ -1254,20 +1564,36 @@
   /* one of the caps is any, just copy the other caps */
   if (G_UNLIKELY (CAPS_IS_ANY (caps1)))
     return gst_caps_ref (caps2);
+
   if (G_UNLIKELY (CAPS_IS_ANY (caps2)))
     return gst_caps_ref (caps1);
 
   dest = gst_caps_new_empty ();
-
   len1 = GST_CAPS_LEN (caps1);
   len2 = GST_CAPS_LEN (caps2);
   for (i = 0; i < len1; i++) {
     struct1 = gst_caps_get_structure_unchecked (caps1, i);
+    features1 = gst_caps_get_features_unchecked (caps1, i);
+    if (!features1)
+      features1 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
     for (j = 0; j < len2; j++) {
       struct2 = gst_caps_get_structure_unchecked (caps2, j);
-      istruct = gst_structure_intersect (struct1, struct2);
-      if (istruct)
-        dest = gst_caps_merge_structure (dest, istruct);
+      features2 = gst_caps_get_features_unchecked (caps2, j);
+      if (!features2)
+        features2 = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+      if (gst_caps_features_is_equal (features1, features2)) {
+        istruct = gst_structure_intersect (struct1, struct2);
+        if (istruct) {
+          if (gst_caps_features_is_any (features1))
+            dest =
+                gst_caps_merge_structure_full (dest, istruct,
+                gst_caps_features_copy_conditional (features2));
+          else
+            dest =
+                gst_caps_merge_structure_full (dest, istruct,
+                gst_caps_features_copy_conditional (features1));
+        }
+      }
     }
   }
 
@@ -1320,15 +1646,13 @@
   return gst_caps_intersect_full (caps1, caps2, GST_CAPS_INTERSECT_ZIG_ZAG);
 }
 
-
 /* subtract operation */
 
 typedef struct
 {
   const GstStructure *subtract_from;
   GSList *put_into;
-}
-SubtractionEntry;
+} SubtractionEntry;
 
 static gboolean
 gst_caps_structure_subtract_field (GQuark field_id, const GValue * value,
@@ -1340,18 +1664,20 @@
   GstStructure *structure;
 
   other = gst_structure_id_get_value (e->subtract_from, field_id);
+
   if (!other) {
     return FALSE;
   }
+
   if (!gst_value_subtract (&subtraction, other, value))
     return TRUE;
+
   if (gst_value_compare (&subtraction, other) == GST_VALUE_EQUAL) {
     g_value_unset (&subtraction);
     return FALSE;
   } else {
     structure = gst_structure_copy (e->subtract_from);
-    gst_structure_id_set_value (structure, field_id, &subtraction);
-    g_value_unset (&subtraction);
+    gst_structure_id_take_value (structure, field_id, &subtraction);
     e->put_into = g_slist_prepend (e->put_into, structure);
     return TRUE;
   }
@@ -1366,9 +1692,9 @@
 
   e.subtract_from = minuend;
   e.put_into = NULL;
-
   ret = gst_structure_foreach ((GstStructure *) subtrahend,
       gst_caps_structure_subtract_field, &e);
+
   if (ret) {
     *into = e.put_into;
   } else {
@@ -1379,6 +1705,7 @@
     }
     g_slist_free (e.put_into);
   }
+
   return ret;
 }
 
@@ -1399,6 +1726,7 @@
   guint i, j, sublen;
   GstStructure *min;
   GstStructure *sub;
+  GstCapsFeatures *min_f, *sub_f;
   GstCaps *dest = NULL, *src;
 
   g_return_val_if_fail (minuend != NULL, NULL);
@@ -1407,6 +1735,7 @@
   if (CAPS_IS_EMPTY (minuend) || CAPS_IS_ANY (subtrahend)) {
     return gst_caps_new_empty ();
   }
+
   if (CAPS_IS_EMPTY_SIMPLE (subtrahend))
     return gst_caps_ref (minuend);
 
@@ -1415,6 +1744,7 @@
      ANY means for specific types, so it's not possible to reduce ANY partially
      You can only remove everything or nothing and that is done above.
      Note: there's a test that checks this behaviour. */
+
   g_return_val_if_fail (!CAPS_IS_ANY (minuend), NULL);
   sublen = GST_CAPS_LEN (subtrahend);
   g_assert (sublen > 0);
@@ -1424,6 +1754,9 @@
     guint srclen;
 
     sub = gst_caps_get_structure_unchecked (subtrahend, i);
+    sub_f = gst_caps_get_features_unchecked (subtrahend, i);
+    if (!sub_f)
+      sub_f = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
     if (dest) {
       gst_caps_unref (src);
       src = dest;
@@ -1432,7 +1765,15 @@
     srclen = GST_CAPS_LEN (src);
     for (j = 0; j < srclen; j++) {
       min = gst_caps_get_structure_unchecked (src, j);
-      if (gst_structure_get_name_id (min) == gst_structure_get_name_id (sub)) {
+      min_f = gst_caps_get_features_unchecked (src, j);
+      if (!min_f)
+        min_f = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
+      /* Same reason as above for ANY caps */
+      g_return_val_if_fail (!gst_caps_features_is_any (min_f), NULL);
+
+      if (gst_structure_get_name_id (min) == gst_structure_get_name_id (sub) &&
+          gst_caps_features_is_equal (min_f, sub_f)) {
         GSList *list;
 
         if (gst_caps_structure_subtract (&list, min, sub)) {
@@ -1440,16 +1781,20 @@
 
           for (walk = list; walk; walk = g_slist_next (walk)) {
             gst_caps_append_structure_unchecked (dest,
-                (GstStructure *) walk->data);
+                (GstStructure *) walk->data,
+                gst_caps_features_copy_conditional (min_f));
           }
           g_slist_free (list);
         } else {
-          gst_caps_append_structure_unchecked (dest, gst_structure_copy (min));
+          gst_caps_append_structure_unchecked (dest, gst_structure_copy (min),
+              gst_caps_features_copy_conditional (min_f));
         }
       } else {
-        gst_caps_append_structure_unchecked (dest, gst_structure_copy (min));
+        gst_caps_append_structure_unchecked (dest, gst_structure_copy (min),
+            gst_caps_features_copy_conditional (min_f));
       }
     }
+
     if (CAPS_IS_EMPTY_SIMPLE (dest)) {
       gst_caps_unref (src);
       return dest;
@@ -1458,6 +1803,7 @@
 
   gst_caps_unref (src);
   dest = gst_caps_simplify (dest);
+
   return dest;
 }
 
@@ -1467,8 +1813,8 @@
 {
   GstCaps *caps;
   GstStructure *structure;
-}
-NormalizeForeach;
+  GstCapsFeatures *features;
+} NormalizeForeach;
 
 static gboolean
 gst_caps_normalize_foreach (GQuark field_id, const GValue * value, gpointer ptr)
@@ -1479,20 +1825,21 @@
 
   if (G_VALUE_TYPE (value) == GST_TYPE_LIST) {
     guint len = gst_value_list_get_size (value);
+
     for (i = 1; i < len; i++) {
       const GValue *v = gst_value_list_get_value (value, i);
       GstStructure *structure = gst_structure_copy (nf->structure);
 
       gst_structure_id_set_value (structure, field_id, v);
-      gst_caps_append_structure_unchecked (nf->caps, structure);
+      gst_caps_append_structure_unchecked (nf->caps, structure,
+          gst_caps_features_copy_conditional (nf->features));
     }
 
     gst_value_init_and_copy (&val, gst_value_list_get_value (value, 0));
-    gst_structure_id_set_value (nf->structure, field_id, &val);
-    g_value_unset (&val);
-
+    gst_structure_id_take_value (nf->structure, field_id, &val);
     return FALSE;
   }
+
   return TRUE;
 }
 
@@ -1517,12 +1864,11 @@
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
   caps = gst_caps_make_writable (caps);
-
   nf.caps = caps;
 
   for (i = 0; i < gst_caps_get_size (nf.caps); i++) {
     nf.structure = gst_caps_get_structure_unchecked (nf.caps, i);
-
+    nf.features = gst_caps_get_features_unchecked (nf.caps, i);
     while (!gst_structure_foreach (nf.structure,
             gst_caps_normalize_foreach, &nf));
   }
@@ -1534,13 +1880,14 @@
 gst_caps_compare_structures (gconstpointer one, gconstpointer two)
 {
   gint ret;
-  const GstStructure *struct1 = *((const GstStructure **) one);
-  const GstStructure *struct2 = *((const GstStructure **) two);
+  const GstStructure *struct1 = ((const GstCapsArrayElement *) one)->structure;
+  const GstStructure *struct2 = ((const GstCapsArrayElement *) two)->structure;
 
   /* FIXME: this orders alphabetically, but ordering the quarks might be faster
      So what's the best way? */
   ret = strcmp (gst_structure_get_name (struct1),
       gst_structure_get_name (struct2));
+
   if (ret)
     return ret;
 
@@ -1552,8 +1899,7 @@
   GQuark name;
   GValue value;
   GstStructure *compare;
-}
-UnionField;
+} UnionField;
 
 static gboolean
 gst_caps_structure_figure_out_union (GQuark field_id, const GValue * value,
@@ -1567,14 +1913,18 @@
       g_value_unset (&u->value);
     return FALSE;
   }
+
   if (gst_value_compare (val, value) == GST_VALUE_EQUAL)
     return TRUE;
+
   if (u->name) {
     g_value_unset (&u->value);
     return FALSE;
   }
+
   u->name = field_id;
   gst_value_union (&u->value, val, value);
+
   return TRUE;
 }
 
@@ -1611,12 +1961,14 @@
      * but at most one field: field.name */
     if (G_IS_VALUE (&field.value)) {
       if (gst_structure_n_fields (simplify) == gst_structure_n_fields (compare)) {
-        gst_structure_id_set_value (compare, field.name, &field.value);
+        gst_structure_id_take_value (compare, field.name, &field.value);
         *result = NULL;
         ret = TRUE;
+      } else {
+        g_value_unset (&field.value);
       }
-      g_value_unset (&field.value);
-    } else if (gst_structure_n_fields (simplify) <=
+    } else
+        if (gst_structure_n_fields (simplify) <=
         gst_structure_n_fields (compare)) {
       /* compare is just more specific, will be optimized away later */
       /* FIXME: do this here? */
@@ -1644,7 +1996,7 @@
   gst_structure_set_parent_refcount (old, NULL);
   gst_structure_free (old);
   gst_structure_set_parent_refcount (new, &GST_CAPS_REFCOUNT (caps));
-  g_ptr_array_index (GST_CAPS_ARRAY (caps), i) = new;
+  g_array_index (GST_CAPS_ARRAY (caps), GstCapsArrayElement, i).structure = new;
 }
 
 /**
@@ -1664,6 +2016,7 @@
 gst_caps_simplify (GstCaps * caps)
 {
   GstStructure *simplify, *compare, *result = NULL;
+  GstCapsFeatures *simplify_f, *compare_f;
   gint i, j, start;
 
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
@@ -1675,20 +2028,31 @@
 
   caps = gst_caps_make_writable (caps);
 
-  g_ptr_array_sort (GST_CAPS_ARRAY (caps), gst_caps_compare_structures);
+  g_array_sort (GST_CAPS_ARRAY (caps), gst_caps_compare_structures);
 
   for (i = start; i >= 0; i--) {
     simplify = gst_caps_get_structure_unchecked (caps, i);
+    simplify_f = gst_caps_get_features_unchecked (caps, i);
+    if (!simplify_f)
+      simplify_f = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
     compare = gst_caps_get_structure_unchecked (caps, start);
+    compare_f = gst_caps_get_features_unchecked (caps, start);
+    if (!compare_f)
+      compare_f = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
     if (gst_structure_get_name_id (simplify) !=
-        gst_structure_get_name_id (compare))
+        gst_structure_get_name_id (compare) ||
+        !gst_caps_features_is_equal (simplify_f, compare_f))
       start = i;
     for (j = start; j >= 0; j--) {
       if (j == i)
         continue;
       compare = gst_caps_get_structure_unchecked (caps, j);
+      compare_f = gst_caps_get_features_unchecked (caps, j);
+      if (!compare_f)
+        compare_f = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
       if (gst_structure_get_name_id (simplify) !=
-          gst_structure_get_name_id (compare)) {
+          gst_structure_get_name_id (compare) ||
+          !gst_caps_features_is_equal (simplify_f, compare_f)) {
         break;
       }
       if (gst_caps_structure_simplify (&result, simplify, compare)) {
@@ -1720,6 +2084,7 @@
 gst_caps_fixate (GstCaps * caps)
 {
   GstStructure *s;
+  GstCapsFeatures *f;
 
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
@@ -1729,6 +2094,13 @@
   s = gst_caps_get_structure (caps, 0);
   gst_structure_fixate (s);
 
+  /* Set features to sysmem if they're still ANY */
+  f = gst_caps_get_features (caps, 0);
+  if (f && gst_caps_features_is_any (f)) {
+    f = gst_caps_features_new_empty ();
+    gst_caps_set_features (caps, 0, f);
+  }
+
   return caps;
 }
 
@@ -1775,14 +2147,20 @@
   slen = 0;
   clen = GST_CAPS_LEN (caps);
   for (i = 0; i < clen; i++) {
+    GstCapsFeatures *f;
+
     slen +=
-        STRUCTURE_ESTIMATED_STRING_LEN (gst_caps_get_structure_unchecked (caps,
-            i));
+        STRUCTURE_ESTIMATED_STRING_LEN (gst_caps_get_structure_unchecked
+        (caps, i));
+    f = gst_caps_get_features_unchecked (caps, i);
+    if (f)
+      slen += FEATURES_ESTIMATED_STRING_LEN (f);
   }
 
   s = g_string_sized_new (slen);
   for (i = 0; i < clen; i++) {
     GstStructure *structure;
+    GstCapsFeatures *features;
 
     if (i > 0) {
       /* ';' is now added by gst_structure_to_string */
@@ -1790,6 +2168,16 @@
     }
 
     structure = gst_caps_get_structure_unchecked (caps, i);
+    features = gst_caps_get_features_unchecked (caps, i);
+
+    g_string_append (s, gst_structure_get_name (structure));
+    if (features && (gst_caps_features_is_any (features)
+            || !gst_caps_features_is_equal (features,
+                GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))) {
+      g_string_append_c (s, '(');
+      priv_gst_caps_features_append_to_gstring (features, s);
+      g_string_append_c (s, ')');
+    }
     priv_gst_structure_append_to_gstring (structure, s);
   }
   if (s->len && s->str[s->len - 1] == ';') {
@@ -1803,37 +2191,94 @@
 gst_caps_from_string_inplace (GstCaps * caps, const gchar * string)
 {
   GstStructure *structure;
-  gchar *s;
+  gchar *s, *copy, *end, *next, save;
 
   if (strcmp ("ANY", string) == 0) {
     GST_CAPS_FLAGS (caps) = GST_CAPS_FLAG_ANY;
     return TRUE;
   }
+
   if (strcmp ("EMPTY", string) == 0 || strcmp ("NONE", string) == 0) {
     return TRUE;
   }
 
-  structure = gst_structure_from_string (string, &s);
-  if (structure == NULL) {
-    return FALSE;
-  }
-  gst_caps_append_structure_unchecked (caps, structure);
-
+  copy = s = g_strdup (string);
   do {
+    GstCapsFeatures *features = NULL;
 
     while (g_ascii_isspace (*s))
       s++;
     if (*s == '\0') {
       break;
     }
-    structure = gst_structure_from_string (s, &s);
-    if (structure == NULL) {
+
+    if (!priv_gst_structure_parse_name (s, &s, &end, &next)) {
+      g_free (copy);
       return FALSE;
     }
-    gst_caps_append_structure_unchecked (caps, structure);
 
+    save = *end;
+    *end = '\0';
+    structure = gst_structure_new_empty (s);
+    *end = save;
+
+    if (structure == NULL) {
+      g_free (copy);
+      return FALSE;
+    }
+
+    s = next;
+
+    if (*s == '\0') {
+      goto append;
+    }
+
+    if (*s == '(') {
+      s++;
+      end = s;
+
+      while (TRUE) {
+        if (*end == '\0') {
+          break;
+        } else if (*end == ')') {
+          break;
+        } else {
+          end++;
+        }
+      }
+
+      save = *end;
+      *end = '\0';
+      features = gst_caps_features_from_string (s);
+      if (!features) {
+        gst_structure_free (structure);
+        g_free (copy);
+        return FALSE;
+      }
+      *end = save;
+      s = end;
+      if (save == ')')
+        s++;
+    }
+
+    if (*s == '\0') {
+      goto append;
+    }
+
+    if (!priv_gst_structure_parse_fields (s, &s, structure)) {
+      gst_structure_free (structure);
+      g_free (copy);
+      return FALSE;
+    }
+
+  append:
+    gst_caps_append_structure_unchecked (caps, structure, features);
+    if (*s == '\0')
+      break;
   } while (TRUE);
 
+  g_free (copy);
+
   return TRUE;
 }
 
diff --git a/gst/gstcaps.h b/gst/gstcaps.h
index 923199b..8df2499 100644
--- a/gst/gstcaps.h
+++ b/gst/gstcaps.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CAPS_H__
@@ -23,6 +23,7 @@
 #include <gst/gstconfig.h>
 #include <gst/gstminiobject.h>
 #include <gst/gststructure.h>
+#include <gst/gstcapsfeatures.h>
 #include <gst/glib-compat.h>
 
 G_BEGIN_DECLS
@@ -384,16 +385,27 @@
                                                     GstCaps       *caps2);
 void              gst_caps_append_structure        (GstCaps       *caps,
                                                     GstStructure  *structure);
+void              gst_caps_append_structure_full   (GstCaps       *caps,
+                                                    GstStructure  *structure,
+                                                    GstCapsFeatures *features);
 void              gst_caps_remove_structure        (GstCaps       *caps, guint idx);
 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;
+GstCaps *         gst_caps_merge_structure_full    (GstCaps       *caps,
+                                                    GstStructure  *structure,
+                                                    GstCapsFeatures *features) 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) G_GNUC_WARN_UNUSED_RESULT;
+void              gst_caps_set_features            (GstCaps *caps,
+                                                    guint          index,
+                                                    GstCapsFeatures * features);
+GstCapsFeatures * gst_caps_get_features            (const GstCaps *caps,
+                                                    guint          index);
 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,
@@ -415,6 +427,9 @@
 						    const GstCaps *superset);
 gboolean          gst_caps_is_subset_structure     (const GstCaps *caps,
                                                     const GstStructure *structure);
+gboolean          gst_caps_is_subset_structure_full (const GstCaps *caps,
+                                                     const GstStructure *structure,
+                                                     const GstCapsFeatures *features);
 gboolean          gst_caps_is_equal		   (const GstCaps *caps1,
 						    const GstCaps *caps2);
 gboolean          gst_caps_is_equal_fixed          (const GstCaps *caps1,
diff --git a/gst/gstcapsfeatures.c b/gst/gstcapsfeatures.c
new file mode 100644
index 0000000..b64240e
--- /dev/null
+++ b/gst/gstcapsfeatures.c
@@ -0,0 +1,851 @@
+/* GStreamer
+ * Copyright (C) 2013 Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:gstcapsfeatures
+ * @short_description: A set of features in caps 
+ * @see_also: #GstCaps
+ *
+ * #GstCapsFeatures can optionally be set on a #GstCaps to add requirements
+ * for additional features for a specific #GstStructure. Caps structures with
+ * the same name but with a non-equal set of caps features are not compatible.
+ * If a pad supports multiple sets of features it has to add multiple equal
+ * structures with different feature sets to the caps.
+ *
+ * Empty #GstCapsFeatures are equivalent with the #GstCapsFeatures that only
+ * contain #GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY #GstCapsFeatures as
+ * created by gst_caps_features_new_any() are equal to any other #GstCapsFeatures
+ * and can be used to specify that any #GstCapsFeatures would be supported, e.g.
+ * for elements that don't touch buffer memory. #GstCaps with ANY #GstCapsFeatures
+ * are considered non-fixed and during negotiation some #GstCapsFeatures have
+ * to be selected.
+ *
+ * Examples for caps features would be the requirement of a specific #GstMemory
+ * types or the requirement of having a specific #GstMeta on the buffer. Features
+ * are given as a string of the format "memory:GstMemoryTypeName" or
+ * "meta:GstMetaAPIName".
+ *
+ * Since: 1.2
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include "gst_private.h"
+#include "gstcapsfeatures.h"
+#include <gst/gst.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_caps_features_debug);
+#define GST_CAT_DEFAULT gst_caps_features_debug
+
+struct _GstCapsFeatures
+{
+  GType type;
+  gint *parent_refcount;
+  GArray *array;
+  gboolean is_any;
+};
+
+GType _gst_caps_features_type = 0;
+GstCapsFeatures *_gst_caps_features_any = NULL;
+GstCapsFeatures *_gst_caps_features_memory_system_memory = NULL;
+static GQuark _gst_caps_feature_memory_system_memory = 0;
+
+G_DEFINE_BOXED_TYPE (GstCapsFeatures, gst_caps_features,
+    gst_caps_features_copy, gst_caps_features_free);
+
+#define IS_MUTABLE(features) \
+    (!features->parent_refcount || \
+     g_atomic_int_get (features->parent_refcount) == 1)
+
+static void
+gst_caps_features_transform_to_string (const GValue * src_value,
+    GValue * dest_value);
+
+void
+_priv_gst_caps_features_initialize (void)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_caps_features_debug, "caps-features", 0,
+      "GstCapsFeatures debug");
+
+  _gst_caps_features_type = gst_caps_features_get_type ();
+  _gst_caps_feature_memory_system_memory =
+      g_quark_from_static_string (GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY);
+
+  g_value_register_transform_func (_gst_caps_features_type, G_TYPE_STRING,
+      gst_caps_features_transform_to_string);
+
+  _gst_caps_features_any = gst_caps_features_new_any ();
+  _gst_caps_features_memory_system_memory =
+      gst_caps_features_new_id (_gst_caps_feature_memory_system_memory, 0);
+}
+
+gboolean
+gst_is_caps_features (gconstpointer obj)
+{
+  const GstCapsFeatures *features = obj;
+
+  return (obj != NULL && features->type == _gst_caps_features_type);
+}
+
+static gboolean
+gst_caps_feature_name_is_valid (const gchar * feature)
+{
+#ifndef G_DISABLE_CHECKS
+  while (TRUE) {
+    if (g_ascii_isalpha (*feature))
+      feature++;
+    else if (*feature == ':')
+      break;
+    else
+      return FALSE;
+  }
+
+  if (*feature != ':')
+    return FALSE;
+
+  feature++;
+  if (*feature == '\0' || !g_ascii_isalpha (*feature))
+    return FALSE;
+
+  while (TRUE) {
+    if (g_ascii_isalnum (*feature))
+      feature++;
+    else if (*feature == '\0')
+      break;
+    else
+      return FALSE;
+  }
+#endif
+
+  return TRUE;
+}
+
+/**
+ * gst_caps_features_new_empty:
+ *
+ * Creates a new, empty #GstCapsFeatures.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new, empty #GstCapsFeatures
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_new_empty (void)
+{
+  GstCapsFeatures *features;
+
+  features = g_slice_new (GstCapsFeatures);
+  features->type = _gst_caps_features_type;
+  features->parent_refcount = NULL;
+  features->array = g_array_new (FALSE, FALSE, sizeof (GQuark));
+  features->is_any = FALSE;
+
+  GST_TRACE ("created caps features %p", features);
+
+  return features;
+}
+
+/**
+ * gst_caps_features_new_any:
+ *
+ * Creates a new, ANY #GstCapsFeatures. This will be equal
+ * to any other #GstCapsFeatures but caps with these are
+ * unfixed.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new, ANY #GstCapsFeatures
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_new_any (void)
+{
+  GstCapsFeatures *features;
+
+  features = gst_caps_features_new_empty ();
+  features->is_any = TRUE;
+
+  return features;
+}
+
+/**
+ * gst_caps_features_new:
+ * @feature1: name of first feature to set
+ * @...: additional features
+ *
+ * Creates a new #GstCapsFeatures with the given features.
+ * The last argument must be NULL.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new, empty #GstCapsFeatures
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_new (const gchar * feature1, ...)
+{
+  GstCapsFeatures *features;
+  va_list varargs;
+
+  g_return_val_if_fail (feature1 != NULL, NULL);
+
+  va_start (varargs, feature1);
+  features = gst_caps_features_new_valist (feature1, varargs);
+  va_end (varargs);
+
+  return features;
+}
+
+/**
+ * gst_caps_features_new_valist:
+ * @feature1: name of first feature to set
+ * @varargs: variable argument list
+ *
+ * Creates a new #GstCapsFeatures with the given features.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new, empty #GstCapsFeatures
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_new_valist (const gchar * feature1, va_list varargs)
+{
+  GstCapsFeatures *features;
+
+  g_return_val_if_fail (feature1 != NULL, NULL);
+
+  features = gst_caps_features_new_empty ();
+
+  while (feature1) {
+    gst_caps_features_add (features, feature1);
+    feature1 = va_arg (varargs, const gchar *);
+  }
+
+  return features;
+}
+
+/**
+ * gst_caps_features_new_id:
+ * @feature1: name of first feature to set
+ * @...: additional features
+ *
+ * Creates a new #GstCapsFeatures with the given features.
+ * The last argument must be 0.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new, empty #GstCapsFeatures
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_new_id (GQuark feature1, ...)
+{
+  GstCapsFeatures *features;
+  va_list varargs;
+
+  g_return_val_if_fail (feature1 != 0, NULL);
+
+  va_start (varargs, feature1);
+  features = gst_caps_features_new_id_valist (feature1, varargs);
+  va_end (varargs);
+
+  return features;
+}
+
+/**
+ * gst_caps_features_new_id_valist:
+ * @feature1: name of first feature to set
+ * @varargs: variable argument list
+ *
+ * Creates a new #GstCapsFeatures with the given features.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new, empty #GstCapsFeatures
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_new_id_valist (GQuark feature1, va_list varargs)
+{
+  GstCapsFeatures *features;
+
+  g_return_val_if_fail (feature1 != 0, NULL);
+
+  features = gst_caps_features_new_empty ();
+
+  while (feature1) {
+    gst_caps_features_add_id (features, feature1);
+    feature1 = va_arg (varargs, GQuark);
+  }
+
+  return features;
+}
+
+/**
+ * gst_caps_features_set_parent_refcount:
+ * @features: a #GstCapsFeatures
+ * @refcount: (in): a pointer to the parent's refcount
+ *
+ * Sets the parent_refcount field of #GstCapsFeatures. This field is used to
+ * determine whether a caps features is mutable or not. This function should only be
+ * called by code implementing parent objects of #GstCapsFeatures, as described in
+ * the MT Refcounting section of the design documents.
+ *
+ * Returns: %TRUE if the parent refcount could be set.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_caps_features_set_parent_refcount (GstCapsFeatures * features,
+    gint * refcount)
+{
+  g_return_val_if_fail (features != NULL, FALSE);
+
+  /* if we have a parent_refcount already, we can only clear
+   * if with a NULL refcount */
+  if (features->parent_refcount) {
+    if (refcount != NULL) {
+      g_return_val_if_fail (refcount == NULL, FALSE);
+      return FALSE;
+    }
+  } else {
+    if (refcount == NULL) {
+      g_return_val_if_fail (refcount != NULL, FALSE);
+      return FALSE;
+    }
+  }
+
+  features->parent_refcount = refcount;
+
+  return TRUE;
+}
+
+/**
+ * gst_caps_features_copy:
+ * @features: a #GstCapsFeatures to duplicate
+ *
+ * Duplicates a #GstCapsFeatures and all its values.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new #GstCapsFeatures.
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_copy (const GstCapsFeatures * features)
+{
+  GstCapsFeatures *copy;
+  guint i, n;
+
+  g_return_val_if_fail (features != NULL, NULL);
+
+  copy = gst_caps_features_new_empty ();
+  n = gst_caps_features_get_size (features);
+  for (i = 0; i < n; i++)
+    gst_caps_features_add_id (copy, gst_caps_features_get_nth_id (features, i));
+  copy->is_any = features->is_any;
+
+  return copy;
+}
+
+/**
+ * gst_caps_features_free:
+ * @features: (in) (transfer full): the #GstCapsFeatures to free
+ *
+ * Frees a #GstCapsFeatures and all its values. The caps features must not
+ * have a parent when this function is called.
+ *
+ * Since: 1.2
+ */
+void
+gst_caps_features_free (GstCapsFeatures * features)
+{
+  g_return_if_fail (features != NULL);
+  g_return_if_fail (features->parent_refcount == NULL);
+
+  g_array_free (features->array, TRUE);
+#ifdef USE_POISONING
+  memset (features, 0xff, sizeof (GstCapsFeatures));
+#endif
+  GST_TRACE ("free caps features %p", features);
+
+  g_slice_free (GstCapsFeatures, features);
+}
+
+/**
+ * gst_caps_features_to_string:
+ * @features: a #GstCapsFeatures
+ *
+ * Converts @features to a human-readable string representation.
+ *
+ * For debugging purposes its easier to do something like this:
+ * |[
+ * GST_LOG ("features is %" GST_PTR_FORMAT, features);
+ * ]|
+ * This prints the features in human readble form.
+ *
+ * Free-function: g_free
+ *
+ * Returns: (transfer full): a pointer to string allocated by g_malloc().
+ *     g_free() after usage.
+ *
+ * Since: 1.2
+ */
+gchar *
+gst_caps_features_to_string (const GstCapsFeatures * features)
+{
+  GString *s;
+
+  g_return_val_if_fail (features != NULL, NULL);
+
+  s = g_string_sized_new (FEATURES_ESTIMATED_STRING_LEN (features));
+
+  priv_gst_caps_features_append_to_gstring (features, s);
+
+  return g_string_free (s, FALSE);
+}
+
+void
+priv_gst_caps_features_append_to_gstring (const GstCapsFeatures * features,
+    GString * s)
+{
+  guint i, n;
+
+  g_return_if_fail (features != NULL);
+
+  if (features->array->len == 0 && features->is_any) {
+    g_string_append (s, "ANY");
+    return;
+  }
+
+  n = features->array->len;
+  for (i = 0; i < n; i++) {
+    GQuark *quark = &g_array_index (features->array, GQuark, i);
+
+    g_string_append (s, g_quark_to_string (*quark));
+    if (i + 1 < n)
+      g_string_append (s, ", ");
+  }
+}
+
+/**
+ * gst_caps_features_from_string:
+ * @features: a string representation of a #GstCapsFeatures.
+ *
+ * Creates a #GstCapsFeatures from a string representation.
+ *
+ * Free-function: gst_caps_features_free
+ *
+ * Returns: (transfer full): a new #GstCapsFeatures or NULL when the string could
+ *     not be parsed. Free with gst_caps_features_free() after use.
+ *
+ * Since: 1.2
+ */
+GstCapsFeatures *
+gst_caps_features_from_string (const gchar * features)
+{
+  GstCapsFeatures *ret;
+  gboolean escape = FALSE;
+  const gchar *features_orig = features;
+  const gchar *feature;
+
+  ret = gst_caps_features_new_empty ();
+
+  if (!features || *features == '\0')
+    return ret;
+
+  if (strcmp (features, "ANY") == 0) {
+    ret->is_any = TRUE;
+    return ret;
+  }
+
+  /* Skip trailing spaces */
+  while (*features == ' ')
+    features++;
+
+  feature = features;
+  while (TRUE) {
+    gchar c = *features;
+
+    if (c == '\\') {
+      escape = TRUE;
+      features++;
+      continue;
+    } else if ((!escape && c == ',') || c == '\0') {
+      guint len = features - feature + 1;
+      gchar *tmp;
+      gchar *p;
+
+      if (len == 1) {
+        g_warning ("Failed deserialize caps features '%s'", features_orig);
+        gst_caps_features_free (ret);
+        return NULL;
+      }
+
+      tmp = g_malloc (len);
+      memcpy (tmp, feature, len - 1);
+      tmp[len - 1] = '\0';
+
+      p = tmp + len - 1;
+      while (*p == ' ') {
+        *p = '\0';
+        p--;
+      }
+
+      if (strstr (tmp, " ") != NULL || *tmp == '\0') {
+        g_free (tmp);
+        g_warning ("Failed deserialize caps features '%s'", features_orig);
+        gst_caps_features_free (ret);
+        return NULL;
+      }
+
+      gst_caps_features_add (ret, tmp);
+      g_free (tmp);
+
+      if (c == '\0')
+        break;
+
+      /* Skip to the next value */
+      features++;
+      while (*features == ' ')
+        features++;
+      feature = features;
+    } else {
+      escape = FALSE;
+      features++;
+    }
+  }
+
+  return ret;
+}
+
+/**
+ * gst_caps_features_get_size:
+ * @features: a #GstCapsFeatures.
+ *
+ * Returns the number of features in @features.
+ *
+ * Returns: The number of features in @features.
+ *
+ * Since: 1.2
+ */
+guint
+gst_caps_features_get_size (const GstCapsFeatures * features)
+{
+  g_return_val_if_fail (features != NULL, 0);
+
+  return features->array->len;
+}
+
+/**
+ * gst_caps_features_get_nth:
+ * @features: a #GstCapsFeatures.
+ * @i: index of the feature
+ *
+ * Returns the @i-th feature of @features.
+ *
+ * Returns: The @i-th feature of @features.
+ *
+ * Since: 1.2
+ */
+const gchar *
+gst_caps_features_get_nth (const GstCapsFeatures * features, guint i)
+{
+  const gchar *feature;
+  GQuark quark;
+
+  g_return_val_if_fail (features != NULL, NULL);
+
+  quark = gst_caps_features_get_nth_id (features, i);
+  if (!quark)
+    return NULL;
+
+  feature = g_quark_to_string (quark);
+  return feature;
+}
+
+/**
+ * gst_caps_features_get_nth_id:
+ * @features: a #GstCapsFeatures.
+ * @i: index of the feature
+ *
+ * Returns the @i-th feature of @features.
+ *
+ * Returns: The @i-th feature of @features.
+ *
+ * Since: 1.2
+ */
+GQuark
+gst_caps_features_get_nth_id (const GstCapsFeatures * features, guint i)
+{
+  GQuark *quark;
+
+  g_return_val_if_fail (features != NULL, 0);
+  g_return_val_if_fail (i < features->array->len, 0);
+
+  quark = &g_array_index (features->array, GQuark, i);
+
+  return *quark;
+}
+
+/**
+ * gst_caps_features_contains:
+ * @features: a #GstCapsFeatures.
+ * @feature: a feature
+ *
+ * Check if @features contains @feature.
+ *
+ * Returns: %TRUE if @features contains @feature.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_caps_features_contains (const GstCapsFeatures * features,
+    const gchar * feature)
+{
+  g_return_val_if_fail (features != NULL, FALSE);
+  g_return_val_if_fail (feature != NULL, FALSE);
+
+  return gst_caps_features_contains_id (features,
+      g_quark_from_string (feature));
+}
+
+/**
+ * gst_caps_features_contains_id:
+ * @features: a #GstCapsFeatures.
+ * @feature: a feature
+ *
+ * Check if @features contains @feature.
+ *
+ * Returns: %TRUE if @features contains @feature.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_caps_features_contains_id (const GstCapsFeatures * features, GQuark feature)
+{
+  guint i, n;
+
+  g_return_val_if_fail (features != NULL, FALSE);
+  g_return_val_if_fail (feature != 0, FALSE);
+
+  if (features->is_any)
+    return TRUE;
+
+  n = features->array->len;
+  if (n == 0)
+    return feature == _gst_caps_feature_memory_system_memory;
+
+  for (i = 0; i < n; i++) {
+    if (gst_caps_features_get_nth_id (features, i) == feature)
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+/**
+ * gst_caps_features_is_equal:
+ * @features1: a #GstCapsFeatures.
+ * @features2: a #GstCapsFeatures.
+ *
+ * Check if @features1 and @features2 are equal.
+ *
+ * Returns: %TRUE if @features1 and @features2 are equal.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_caps_features_is_equal (const GstCapsFeatures * features1,
+    const GstCapsFeatures * features2)
+{
+  guint i, n;
+
+  g_return_val_if_fail (features1 != NULL, FALSE);
+  g_return_val_if_fail (features2 != NULL, FALSE);
+
+  if (features1->is_any || features2->is_any)
+    return TRUE;
+
+  /* Check for the sysmem==empty case */
+  if (features1->array->len == 0 && features2->array->len == 0)
+    return TRUE;
+  if (features1->array->len == 0 && features2->array->len == 1
+      && gst_caps_features_contains_id (features2,
+          _gst_caps_feature_memory_system_memory))
+    return TRUE;
+  if (features2->array->len == 0 && features1->array->len == 1
+      && gst_caps_features_contains_id (features1,
+          _gst_caps_feature_memory_system_memory))
+    return TRUE;
+
+  if (features1->array->len != features2->array->len)
+    return FALSE;
+
+  n = features1->array->len;
+  for (i = 0; i < n; i++)
+    if (!gst_caps_features_contains_id (features2,
+            gst_caps_features_get_nth_id (features1, i)))
+      return FALSE;
+
+  return TRUE;
+}
+
+/**
+ * gst_caps_features_is_any:
+ * @features: a #GstCapsFeatures.
+ *
+ * Check if @features is %GST_CAPS_FEATURES_ANY.
+ *
+ * Returns: %TRUE if @features is %GST_CAPS_FEATURES_ANY.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_caps_features_is_any (const GstCapsFeatures * features)
+{
+  g_return_val_if_fail (features != NULL, FALSE);
+
+  return features->is_any;
+}
+
+/**
+ * gst_caps_features_add:
+ * @features: a #GstCapsFeatures.
+ * @feature: a feature.
+ *
+ * Adds @feature to @features.
+ *
+ * Since: 1.2
+ */
+void
+gst_caps_features_add (GstCapsFeatures * features, const gchar * feature)
+{
+  g_return_if_fail (features != NULL);
+  g_return_if_fail (IS_MUTABLE (features));
+  g_return_if_fail (feature != NULL);
+  g_return_if_fail (!features->is_any);
+
+  gst_caps_features_add_id (features, g_quark_from_string (feature));
+}
+
+/**
+ * gst_caps_features_add_id:
+ * @features: a #GstCapsFeatures.
+ * @feature: a feature.
+ *
+ * Adds @feature to @features.
+ *
+ * Since: 1.2
+ */
+void
+gst_caps_features_add_id (GstCapsFeatures * features, GQuark feature)
+{
+  g_return_if_fail (features != NULL);
+  g_return_if_fail (IS_MUTABLE (features));
+  g_return_if_fail (feature != 0);
+  g_return_if_fail (!features->is_any);
+
+  if (!gst_caps_feature_name_is_valid (g_quark_to_string (feature))) {
+    g_warning ("Invalid caps feature name: %s", g_quark_to_string (feature));
+    return;
+  }
+
+  /* If features is empty it will contain sysmem, however
+   * we want to add it explicitely if it is tried to be
+   * added as first features
+   */
+  if (features->array->len > 0
+      && gst_caps_features_contains_id (features, feature))
+    return;
+
+  g_array_append_val (features->array, feature);
+}
+
+/**
+ * gst_caps_features_remove:
+ * @features: a #GstCapsFeatures.
+ * @feature: a feature.
+ *
+ * Removes @feature from @features.
+ *
+ * Since: 1.2
+ */
+void
+gst_caps_features_remove (GstCapsFeatures * features, const gchar * feature)
+{
+  g_return_if_fail (features != NULL);
+  g_return_if_fail (IS_MUTABLE (features));
+  g_return_if_fail (feature != NULL);
+
+  gst_caps_features_remove_id (features, g_quark_from_string (feature));
+}
+
+/**
+ * gst_caps_features_remove_id:
+ * @features: a #GstCapsFeatures.
+ * @feature: a feature.
+ *
+ * Removes @feature from @features.
+ *
+ * Since: 1.2
+ */
+void
+gst_caps_features_remove_id (GstCapsFeatures * features, GQuark feature)
+{
+  guint i, n;
+
+  g_return_if_fail (features != NULL);
+  g_return_if_fail (IS_MUTABLE (features));
+  g_return_if_fail (feature != 0);
+
+  n = features->array->len;
+  for (i = 0; i < n; i++) {
+    GQuark quark = gst_caps_features_get_nth_id (features, i);
+
+    if (quark == feature) {
+      g_array_remove_index_fast (features->array, i);
+      return;
+    }
+  }
+}
+
+static void
+gst_caps_features_transform_to_string (const GValue * src_value,
+    GValue * dest_value)
+{
+  g_return_if_fail (src_value != NULL);
+  g_return_if_fail (dest_value != NULL);
+
+  dest_value->data[0].v_pointer =
+      gst_caps_features_to_string (src_value->data[0].v_pointer);
+}
diff --git a/gst/gstcapsfeatures.h b/gst/gstcapsfeatures.h
new file mode 100644
index 0000000..62d9e3c
--- /dev/null
+++ b/gst/gstcapsfeatures.h
@@ -0,0 +1,80 @@
+/* GStreamer
+ * Copyright (C) 2013 Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_CAPS_FEATURES_H__
+#define __GST_CAPS_FEATURES_H__
+
+#include <gst/gstconfig.h>
+#include <gst/glib-compat.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstCapsFeatures GstCapsFeatures;
+
+#define GST_TYPE_CAPS_FEATURES (gst_caps_features_get_type ())
+#define GST_IS_CAPS_FEATURES(object)       (gst_is_caps_features(object))
+#define GST_CAPS_FEATURES_CAST(object)     ((GstCapsFeatures *)(object))
+#define GST_CAPS_FEATURES(object)          (GST_CAPS_FEATURES_CAST(object))
+
+#define GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY "memory:SystemMemory"
+
+GST_EXPORT GstCapsFeatures *_gst_caps_features_any;
+#define GST_CAPS_FEATURES_ANY (_gst_caps_features_any)
+
+GST_EXPORT GstCapsFeatures *_gst_caps_features_memory_system_memory;
+#define GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY (_gst_caps_features_memory_system_memory)
+
+GType             gst_caps_features_get_type (void);
+gboolean          gst_is_caps_features (gconstpointer obj);
+
+GstCapsFeatures * gst_caps_features_new_empty (void);
+GstCapsFeatures * gst_caps_features_new_any (void);
+GstCapsFeatures * gst_caps_features_new (const gchar *feature1, ...);
+GstCapsFeatures * gst_caps_features_new_valist (const gchar *feature1, va_list varargs);
+GstCapsFeatures * gst_caps_features_new_id (GQuark feature1, ...);
+GstCapsFeatures * gst_caps_features_new_id_valist (GQuark feature1, va_list varargs);
+
+gboolean          gst_caps_features_set_parent_refcount  (GstCapsFeatures *features, gint * refcount);
+
+GstCapsFeatures * gst_caps_features_copy (const GstCapsFeatures * features);
+void              gst_caps_features_free (GstCapsFeatures * features);
+
+gchar *           gst_caps_features_to_string (const GstCapsFeatures * features);
+GstCapsFeatures * gst_caps_features_from_string (const gchar * features);
+
+guint             gst_caps_features_get_size (const GstCapsFeatures * features);
+const gchar *     gst_caps_features_get_nth (const GstCapsFeatures * features, guint i);
+GQuark            gst_caps_features_get_nth_id (const GstCapsFeatures * features, guint i);
+
+gboolean          gst_caps_features_contains (const GstCapsFeatures * features, const gchar * feature);
+gboolean          gst_caps_features_contains_id (const GstCapsFeatures * features, GQuark feature);
+gboolean          gst_caps_features_is_equal (const GstCapsFeatures * features1, const GstCapsFeatures * features2);
+
+gboolean          gst_caps_features_is_any (const GstCapsFeatures * features);
+
+void              gst_caps_features_add (GstCapsFeatures * features, const gchar * feature);
+void              gst_caps_features_add_id ( GstCapsFeatures * features, GQuark feature);
+
+void              gst_caps_features_remove (GstCapsFeatures * features, const gchar * feature);
+void              gst_caps_features_remove_id (GstCapsFeatures * features, GQuark feature);
+
+G_END_DECLS
+
+#endif /* __GST_CAPS_FEATURES_H__ */
diff --git a/gst/gstchildproxy.c b/gst/gstchildproxy.c
index 67becb7..8ce03c9 100644
--- a/gst/gstchildproxy.c
+++ b/gst/gstchildproxy.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -163,7 +163,7 @@
 
 /**
  * gst_child_proxy_lookup:
- * @childproxy: child proxy object to lookup the property in
+ * @object: child proxy object to lookup the property in
  * @name: name of the property to look up
  * @target: (out) (allow-none) (transfer full): pointer to a #GObject that
  *     takes the real object to set property on
@@ -179,57 +179,57 @@
  * usage. For plain GObjects @target is the same as @object.
  */
 gboolean
-gst_child_proxy_lookup (GstChildProxy * childproxy, const gchar * name,
+gst_child_proxy_lookup (GstChildProxy * object, const gchar * name,
     GObject ** target, GParamSpec ** pspec)
 {
-  GObject *object;
+  GObject *obj;
   gboolean res = FALSE;
   gchar **names, **current;
 
-  g_return_val_if_fail (GST_IS_CHILD_PROXY (childproxy), FALSE);
+  g_return_val_if_fail (GST_IS_CHILD_PROXY (object), FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
 
-  object = g_object_ref (childproxy);
+  obj = g_object_ref (object);
 
   current = names = g_strsplit (name, "::", -1);
   /* find the owner of the property */
   while (current[1]) {
     GObject *next;
 
-    if (!GST_IS_CHILD_PROXY (object)) {
+    if (!GST_IS_CHILD_PROXY (obj)) {
       GST_INFO
           ("object %s is not a parent, so you cannot request a child by name %s",
-          (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""), current[0]);
+          (GST_IS_OBJECT (obj) ? GST_OBJECT_NAME (obj) : ""), current[0]);
       break;
     }
-    next = gst_child_proxy_get_child_by_name (GST_CHILD_PROXY (object),
+    next = gst_child_proxy_get_child_by_name (GST_CHILD_PROXY (obj),
         current[0]);
     if (!next) {
       GST_INFO ("no such object %s", current[0]);
       break;
     }
-    g_object_unref (object);
-    object = next;
+    g_object_unref (obj);
+    obj = next;
     current++;
   }
 
   /* look for psec */
   if (current[1] == NULL) {
     GParamSpec *spec =
-        g_object_class_find_property (G_OBJECT_GET_CLASS (object), current[0]);
+        g_object_class_find_property (G_OBJECT_GET_CLASS (obj), current[0]);
     if (spec == NULL) {
       GST_INFO ("no param spec named %s", current[0]);
     } else {
       if (pspec)
         *pspec = spec;
       if (target) {
-        g_object_ref (object);
-        *target = object;
+        g_object_ref (obj);
+        *target = obj;
       }
       res = TRUE;
     }
   }
-  g_object_unref (object);
+  g_object_unref (obj);
   g_strfreev (names);
   return res;
 }
diff --git a/gst/gstchildproxy.h b/gst/gstchildproxy.h
index 1614d4b..065ba75 100644
--- a/gst/gstchildproxy.h
+++ b/gst/gstchildproxy.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CHILD_PROXY_H__
diff --git a/gst/gstclock.c b/gst/gstclock.c
index 5e91b58..707f88b 100644
--- a/gst/gstclock.c
+++ b/gst/gstclock.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstclock.h b/gst/gstclock.h
index 5d42ce6..2fbe90c 100644
--- a/gst/gstclock.h
+++ b/gst/gstclock.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CLOCK_H__
diff --git a/gst/gstcompat.h b/gst/gstcompat.h
index cace2e1..3f4a682 100644
--- a/gst/gstcompat.h
+++ b/gst/gstcompat.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstcompat
@@ -34,28 +34,11 @@
 
 G_BEGIN_DECLS
 
-/* added to ease the transition to 0.11 */
-#define gst_element_class_set_details_simple  gst_element_class_set_metadata
-
-#define gst_element_factory_get_longname(f)    gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_LONGNAME)
-#define gst_element_factory_get_klass(f)       gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_KLASS)
-#define gst_element_factory_get_description(f) gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_DESCRIPTION)
-#define gst_element_factory_get_author(f)      gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_AUTHOR)
-#define gst_element_factory_get_documentation_uri(f)  gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_DOC_URI)
-#define gst_element_factory_get_icon_name(f)   gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_ICON_NAME)
-
-#define gst_pad_get_caps_reffed(p)             gst_pad_get_caps(p)
-#define gst_pad_peer_get_caps_reffed(p)        gst_pad_peer_get_caps(p)
-
 #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
-
-#define gst_tag_list_free(taglist)    gst_tag_list_unref(taglist)
-
 static inline gboolean
 gst_pad_set_caps (GstPad * pad, GstCaps * caps)
 {
@@ -78,6 +61,23 @@
 
 #ifndef GST_DISABLE_DEPRECATED
 
+/* added to ease the transition to 0.11 */
+#define gst_element_class_set_details_simple  gst_element_class_set_metadata
+
+#define gst_element_factory_get_longname(f)    gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_LONGNAME)
+#define gst_element_factory_get_klass(f)       gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_KLASS)
+#define gst_element_factory_get_description(f) gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_DESCRIPTION)
+#define gst_element_factory_get_author(f)      gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_AUTHOR)
+#define gst_element_factory_get_documentation_uri(f)  gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_DOC_URI)
+#define gst_element_factory_get_icon_name(f)   gst_element_factory_get_metadata(f, GST_ELEMENT_METADATA_ICON_NAME)
+
+#define gst_pad_get_caps_reffed(p)             gst_pad_get_caps(p)
+#define gst_pad_peer_get_caps_reffed(p)        gst_pad_peer_get_caps(p)
+
+#define gst_adapter_prev_timestamp    gst_adapter_prev_pts
+
+#define gst_tag_list_free(taglist)    gst_tag_list_unref(taglist)
+
 #define GST_MESSAGE_DURATION GST_MESSAGE_DURATION_CHANGED
 #define gst_message_new_duration(src,fmt,dur) \
     gst_message_new_duration_changed(src)
diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in
index 33aa728..e6ea08d 100644
--- a/gst/gstconfig.h.in
+++ b/gst/gstconfig.h.in
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -114,55 +114,6 @@
 /* Configures the use of external plugins */
 @GST_DISABLE_PLUGIN_DEFINE@
 
-/* printf extension format */
-/**
- * GST_PTR_FORMAT:
- *
- * printf format type used to debug GStreamer types.
- * This can only be used on types whose size is >= sizeof(gpointer).
- */
-@GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE@
-/**
- * GST_SEGMENT_FORMAT:
- *
- * printf format type used to debug GStreamer segments.
- * This can only be used on pointers to GstSegment structures.
- */
-@GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE@
-
-/* whether or not GST_PTR_FORMAT or GST_SEGMENT_FORMAT are using
- * the printf extension mechanism. This is for internal use in our
- * header files so we know whether we can use G_GNUC_PRINTF or not */
-@GST_USING_PRINTF_EXTENSION_DEFINE@
-
-/* GST_DISABLE_PRINTF_EXTENSION:
- *
- * Define this to debug your debug log messages and make gcc spew warnings
- * if printf format string and arguments don't match up (this is usually
- * not the case when libc and gcc are used because printf format warnings
- * have to be disabled when the printf extension mechanism is in use).
- *
- * Note that using this option disables 'pretty logging' of GStreamer objects
- * like caps, tags, structures, events, pads etc., so that only their address
- * will be printed in the log.
- *
- * This define only disables use of the special registered printf format
- * extensions in the code compiled with it defined. It does not stop
- * GStreamer from registering these extensions in the first place if it
- * was compiled against a libc that supports this.
- *
- * (not official API)
- */
-/* If GLib is not using the system printf, we can't use the registered
- * extensions because the GLib-internal printf won't know how to parse them */
-#if defined(GST_DISABLE_PRINTF_EXTENSION) || !defined(GLIB_USING_SYSTEM_PRINTF)
-  #undef GST_PTR_FORMAT
-  #define GST_PTR_FORMAT "p"
-  #undef GST_SEGMENT_FORMAT
-  #define GST_SEGMENT_FORMAT "p"
-  #undef GST_USING_PRINTF_EXTENSION
-#endif
-
 /* whether or not the CPU supports unaligned access */
 @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 
diff --git a/gst/gstcontext.c b/gst/gstcontext.c
new file mode 100644
index 0000000..92afb75
--- /dev/null
+++ b/gst/gstcontext.c
@@ -0,0 +1,204 @@
+/* GStreamer
+ * Copyright (C) 2013 Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * gstcontext.h: Header for GstContext 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:gstcontext
+ * @short_description: Lightweight objects to represent element contexts
+ * @see_also: #GstMiniObject, #GstElement
+ *
+ * #GstContext is a container object used to store contexts like a device
+ * context, a display server connection and similar concepts that should
+ * be shared between multiple elements.
+ *
+ * Applications can set a context on a complete pipeline by using
+ * gst_element_set_context(), which will then be propagated to all
+ * child elements. Elements can handle these in GstElement::set_context()
+ * and merge them with the context information they already have.
+ *
+ * When an element needs a context it will do the following actions in this
+ * order until one step succeeds:
+ * 1) Check if the element already has a context
+ * 2) Query downstream with GST_QUERY_CONTEXT for the context
+ * 3) Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required
+ *    context types and afterwards check if a usable context was set now
+ * 4) Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
+ *    and send a GST_EVENT_CONTEXT event downstream, containing the complete
+ *    context information at this time.
+ *
+ * Applications should catch the GST_MESSAGE_HAVE_CONTEXT messages and remember
+ * any content from it unless it has a custom version of a specific context. If
+ * later an element is posting a GST_MESSAGE_NEED_CONTEXT message for a specific
+ * context that was created by an element before, the application should pass it
+ * to the element or the complete pipeline.
+ *
+ * Since: 1.2
+ */
+
+#include "gst_private.h"
+#include <string.h>
+#include "gstcontext.h"
+#include "gstquark.h"
+
+struct _GstContext
+{
+  GstMiniObject mini_object;
+
+  GstStructure *structure;
+};
+
+#define GST_CONTEXT_STRUCTURE(c)  (((GstContext *)(c))->structure)
+
+static GType _gst_context_type = 0;
+GST_DEFINE_MINI_OBJECT_TYPE (GstContext, gst_context);
+
+void
+_priv_gst_context_initialize (void)
+{
+  GST_CAT_INFO (GST_CAT_GST_INIT, "init contexts");
+
+  /* the GstMiniObject types need to be class_ref'd once before it can be
+   * done from multiple threads;
+   * see http://bugzilla.gnome.org/show_bug.cgi?id=304551 */
+  gst_context_get_type ();
+
+  _gst_context_type = gst_context_get_type ();
+}
+
+static void
+_gst_context_free (GstContext * context)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (context != NULL);
+
+  GST_CAT_LOG (GST_CAT_CONTEXT, "finalize context %p: %" GST_PTR_FORMAT,
+      context, GST_CONTEXT_STRUCTURE (context));
+
+  structure = GST_CONTEXT_STRUCTURE (context);
+  if (structure) {
+    gst_structure_set_parent_refcount (structure, NULL);
+    gst_structure_free (structure);
+  }
+
+  g_slice_free1 (sizeof (GstContext), context);
+}
+
+static void gst_context_init (GstContext * context);
+
+static GstContext *
+_gst_context_copy (GstContext * context)
+{
+  GstContext *copy;
+  GstStructure *structure;
+
+  GST_CAT_LOG (GST_CAT_CONTEXT, "copy context %p: %" GST_PTR_FORMAT, context,
+      GST_CONTEXT_STRUCTURE (context));
+
+  copy = g_slice_new0 (GstContext);
+
+  gst_context_init (copy);
+
+  structure = GST_CONTEXT_STRUCTURE (context);
+  GST_CONTEXT_STRUCTURE (copy) = gst_structure_copy (structure);
+  gst_structure_set_parent_refcount (GST_CONTEXT_STRUCTURE (copy),
+      &copy->mini_object.refcount);
+
+  return GST_CONTEXT_CAST (copy);
+}
+
+static void
+gst_context_init (GstContext * context)
+{
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (context), 0, _gst_context_type,
+      (GstMiniObjectCopyFunction) _gst_context_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_context_free);
+}
+
+/**
+ * gst_context_new:
+ *
+ * Create a new context.
+ *
+ * Returns: (transfer full): The new context.
+ *
+ * Since: 1.2
+ */
+GstContext *
+gst_context_new (void)
+{
+  GstContext *context;
+  GstStructure *structure;
+
+  context = g_slice_new0 (GstContext);
+
+  GST_CAT_LOG (GST_CAT_CONTEXT, "creating new context %p", context);
+
+  structure = gst_structure_new_id_empty (GST_QUARK (CONTEXT));
+  gst_structure_set_parent_refcount (structure, &context->mini_object.refcount);
+  gst_context_init (context);
+
+  GST_CONTEXT_STRUCTURE (context) = structure;
+
+  return context;
+}
+
+/**
+ * gst_context_get_structure:
+ * @context: The #GstContext.
+ *
+ * Access the structure of the context.
+ *
+ * Returns: (transfer none): The structure of the context. The structure is
+ * still owned by the context, which means that you should not modify it,
+ * free it and that the pointer becomes invalid when you free the context.
+ *
+ * Since: 1.2
+ */
+const GstStructure *
+gst_context_get_structure (GstContext * context)
+{
+  g_return_val_if_fail (GST_IS_CONTEXT (context), NULL);
+
+  return GST_CONTEXT_STRUCTURE (context);
+}
+
+/**
+ * gst_context_writable_structure:
+ * @context: The #GstContext.
+ *
+ * Get a writable version of the structure.
+ *
+ * Returns: The structure of the context. The structure is still
+ * owned by the event, which means that you should not free it and
+ * that the pointer becomes invalid when you free the event.
+ * This function checks if @context is writable.
+ *
+ * Since: 1.2
+ */
+GstStructure *
+gst_context_writable_structure (GstContext * context)
+{
+  g_return_val_if_fail (GST_IS_CONTEXT (context), NULL);
+  g_return_val_if_fail (gst_context_is_writable (context), NULL);
+
+  return GST_CONTEXT_STRUCTURE (context);
+}
diff --git a/gst/gstcontext.h b/gst/gstcontext.h
new file mode 100644
index 0000000..7f4a565
--- /dev/null
+++ b/gst/gstcontext.h
@@ -0,0 +1,153 @@
+/* GStreamer
+ * Copyright (C) 2013 Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * gstcontext.h: Header for GstContext 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_CONTEXT_H__
+#define __GST_CONTEXT_H__
+
+G_BEGIN_DECLS
+
+typedef struct _GstContext GstContext;
+
+#include <gst/gstminiobject.h>
+#include <gst/gststructure.h>
+
+#define GST_TYPE_CONTEXT                         (gst_context_get_type())
+#define GST_IS_CONTEXT(obj)                      (GST_IS_MINI_OBJECT_TYPE (obj, GST_TYPE_CONTEXT))
+#define GST_CONTEXT_CAST(obj)                    ((GstContext*)(obj))
+#define GST_CONTEXT(obj)                         (GST_CONTEXT_CAST(obj))
+
+
+
+GType           gst_context_get_type            (void);
+
+
+/* refcounting */
+/**
+ * gst_context_ref:
+ * @context: the context to ref
+ *
+ * Convenience macro to increase the reference count of the context.
+ *
+ * Returns: @context (for convenience when doing assignments)
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstContext * gst_context_ref (GstContext * context);
+#endif
+
+static inline GstContext *
+gst_context_ref (GstContext * context)
+{
+  return (GstContext *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (context));
+}
+
+/**
+ * gst_context_unref:
+ * @context: the context to unref
+ *
+ * Convenience macro to decrease the reference count of the context, possibly
+ * freeing it.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_context_unref (GstContext * context);
+#endif
+
+static inline void
+gst_context_unref (GstContext * context)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (context));
+}
+
+/* copy context */
+/**
+ * gst_context_copy:
+ * @context: the context to copy
+ *
+ * Creates a copy of the context. Returns a copy of the context.
+ *
+ * Returns: (transfer full): a new copy of @context.
+ *
+ * MT safe
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstContext * gst_context_copy (const GstContext * context);
+#endif
+
+static inline GstContext *
+gst_context_copy (const GstContext * context)
+{
+  return GST_CONTEXT_CAST (gst_mini_object_copy (GST_MINI_OBJECT_CONST_CAST (context)));
+}
+
+/**
+ * gst_context_is_writable:
+ * @context: a #GstContext
+ *
+ * Tests if you can safely write into a context's structure or validly
+ * modify the seqnum and timestamp fields.
+ */
+#define         gst_context_is_writable(context)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (context))
+/**
+ * gst_context_make_writable:
+ * @context: (transfer full): the context to make writable
+ *
+ * Checks if a context is writable. If not, a writable copy is made and
+ * returned.
+ *
+ * Returns: (transfer full): a context (possibly a duplicate) that is writable.
+ *
+ * MT safe
+ */
+#define         gst_context_make_writable(context)  GST_CONTEXT_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (context)))
+/**
+ * gst_context_replace:
+ * @old_context: (inout) (transfer full): pointer to a pointer to a #GstContext
+ *     to be replaced.
+ * @new_context: (allow-none) (transfer none): pointer to a #GstContext that will
+ *     replace the context pointed to by @old_context.
+ *
+ * Modifies a pointer to a #GstContext to point to a different #GstContext. The
+ * modification is done atomically (so this is useful for ensuring thread safety
+ * in some cases), and the reference counts are updated appropriately (the old
+ * context is unreffed, the new one is reffed).
+ *
+ * Either @new_context or the #GstContext pointed to by @old_context may be NULL.
+ *
+ * Returns: TRUE if @new_context was different from @old_context
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_context_replace (GstContext **old_context, GstContext *new_context);
+#endif
+
+static inline gboolean
+gst_context_replace (GstContext **old_context, GstContext *new_context)
+{
+  return gst_mini_object_replace ((GstMiniObject **) old_context, (GstMiniObject *) new_context);
+}
+
+GstContext *    gst_context_new (void) G_GNUC_MALLOC;
+
+const GstStructure *  gst_context_get_structure            (GstContext *context);
+GstStructure *        gst_context_writable_structure       (GstContext *context);
+
+G_END_DECLS
+
+#endif /* __GST_CONTEXT_H__ */
diff --git a/gst/gstcontrolbinding.c b/gst/gstcontrolbinding.c
index 2f4d85e..458151a 100644
--- a/gst/gstcontrolbinding.c
+++ b/gst/gstcontrolbinding.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstcontrolbinding
@@ -35,7 +35,7 @@
  * - the weak-ref on object is not nice, as is the same as gst_object_parent()
  *   once the object is added to the parent
  *
- * - another option would be do defer what I am doing in _constructor to when
+ * - another option would be to defer what is done in _constructor to when
  *   the parent is set (need to listen to the signal then)
  *   then basically I could
  *   a) remove the obj arg and wait the binding to be added or
@@ -135,6 +135,11 @@
                 G_PARAM_CONSTRUCT_ONLY)) ==
         (G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE)) {
       binding->pspec = pspec;
+    } else {
+      GST_WARNING_OBJECT (binding->object,
+          "property '%s' on class '%s' needs to "
+          "be writeable, controlable and not construct_only", binding->name,
+          G_OBJECT_TYPE_NAME (binding->object));
     }
   } else {
     GST_WARNING_OBJECT (binding->object, "class '%s' has no property '%s'",
diff --git a/gst/gstcontrolbinding.h b/gst/gstcontrolbinding.h
index fdb90dc..170fce3 100644
--- a/gst/gstcontrolbinding.h
+++ b/gst/gstcontrolbinding.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CONTROL_BINDING_H__
diff --git a/gst/gstcontrolsource.c b/gst/gstcontrolsource.c
index 68132bf..c7b134d 100644
--- a/gst/gstcontrolsource.c
+++ b/gst/gstcontrolsource.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstcontrolsource.h b/gst/gstcontrolsource.h
index e61c59a..b0cd92a 100644
--- a/gst/gstcontrolsource.h
+++ b/gst/gstcontrolsource.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CONTROL_SOURCE_H__
diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
index 6a8f659..6d6c642 100644
--- a/gst/gstdatetime.c
+++ b/gst/gstdatetime.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/gstdatetime.h b/gst/gstdatetime.h
index 500b9cc..08139d7 100644
--- a/gst/gstdatetime.h
+++ b/gst/gstdatetime.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DATE_TIME_H__
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index a39e279..23c8f9b 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /* TODO:
  * edge [ constraint=false ];
diff --git a/gst/gstdebugutils.h b/gst/gstdebugutils.h
index 39decd8..ee0d193 100644
--- a/gst/gstdebugutils.h
+++ b/gst/gstdebugutils.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GSTDEBUGUTILS_H__
diff --git a/gst/gstelement.c b/gst/gstelement.c
index 02d6ebd..587de1b 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -97,6 +97,10 @@
 #include "gst-i18n-lib.h"
 #include "glib-compat-private.h"
 
+#ifndef GST_DISABLE_GST_DEBUG
+#include "printf/printf.h"
+#endif
+
 /* Element signals and args */
 enum
 {
@@ -132,7 +136,8 @@
 static void gst_element_set_bus_func (GstElement * element, GstBus * bus);
 static gboolean gst_element_post_message_default (GstElement * element,
     GstMessage * message);
-
+static void gst_element_set_context_func (GstElement * element,
+    GstContext * context);
 
 static gboolean gst_element_default_send_event (GstElement * element,
     GstEvent * event);
@@ -239,6 +244,7 @@
   klass->send_event = GST_DEBUG_FUNCPTR (gst_element_default_send_event);
   klass->numpadtemplates = 0;
   klass->post_message = GST_DEBUG_FUNCPTR (gst_element_post_message_default);
+  klass->set_context = GST_DEBUG_FUNCPTR (gst_element_set_context_func);
 
   klass->elementfactory = NULL;
 }
@@ -1121,8 +1127,7 @@
  * The order of pads returned by the iterator will be the order in which
  * the pads were added to the element.
  *
- * Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
- *     after use.
+ * Returns: (transfer full): the #GstIterator of #GstPad.
  *
  * MT safe.
  */
@@ -1143,8 +1148,7 @@
  * The order of pads returned by the iterator will be the order in which
  * the pads were added to the element.
  *
- * Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
- *     after use.
+ * Returns: (transfer full): the #GstIterator of #GstPad.
  *
  * MT safe.
  */
@@ -1165,8 +1169,7 @@
  * The order of pads returned by the iterator will be the order in which
  * the pads were added to the element.
  *
- * Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
- *     after use.
+ * Returns: (transfer full): the #GstIterator of #GstPad.
  *
  * MT safe.
  */
@@ -1650,20 +1653,19 @@
 gboolean
 gst_element_query (GstElement * element, GstQuery * query)
 {
-  GstElementClass *oclass;
-  gboolean result = FALSE;
+  GstElementClass *klass;
 
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
   g_return_val_if_fail (query != NULL, FALSE);
 
-  oclass = GST_ELEMENT_GET_CLASS (element);
-
-  if (oclass->query) {
+  klass = GST_ELEMENT_GET_CLASS (element);
+  if (klass->query) {
     GST_CAT_DEBUG (GST_CAT_ELEMENT_PADS, "send query on element %s",
         GST_ELEMENT_NAME (element));
-    result = oclass->query (element, query);
+    return klass->query (element, query);
   }
-  return result;
+
+  return FALSE;
 }
 
 static gboolean
@@ -1722,6 +1724,7 @@
   GstElementClass *klass;
 
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
+  g_return_val_if_fail (message != NULL, FALSE);
 
   klass = GST_ELEMENT_GET_CLASS (element);
   if (klass->post_message)
@@ -1746,6 +1749,7 @@
 {
   va_list args;
   gchar *buffer;
+  int len;
 
   if (format == NULL)
     return NULL;
@@ -1753,8 +1757,14 @@
     return NULL;
 
   va_start (args, format);
-  buffer = g_strdup_vprintf (format, args);
+
+  len = __gst_vasprintf (&buffer, format, args);
+
   va_end (args);
+
+  if (len < 0)
+    buffer = NULL;
+
   return buffer;
 }
 
@@ -2428,7 +2438,8 @@
  * element will perform the remainder of the state change asynchronously in
  * another thread.
  * An application can use gst_element_get_state() to wait for the completion
- * of the state change or it can wait for a state change message on the bus.
+ * of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or
+ * %GST_MESSAGE_STATE_CHANGED on the bus.
  *
  * State changes to %GST_STATE_READY or %GST_STATE_NULL never return
  * #GST_STATE_CHANGE_ASYNC.
@@ -2904,6 +2915,7 @@
   bus_p = &element->bus;
   gst_object_replace ((GstObject **) clock_p, NULL);
   gst_object_replace ((GstObject **) bus_p, NULL);
+  gst_context_replace (&element->context, NULL);
   GST_OBJECT_UNLOCK (element);
 
   GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "parent class dispose");
@@ -3013,3 +3025,62 @@
 
   return result;
 }
+
+static void
+gst_element_set_context_func (GstElement * element, GstContext * context)
+{
+  GST_OBJECT_LOCK (element);
+  gst_context_replace (&element->context, context);
+  GST_OBJECT_UNLOCK (element);
+}
+
+/**
+ * gst_element_set_context:
+ * @element: a #GstElement to set the context of.
+ * @context: (transfer none): the #GstContext to set.
+ *
+ * Sets the context of the element. Increases the refcount of the context.
+ *
+ * MT safe.
+ */
+void
+gst_element_set_context (GstElement * element, GstContext * context)
+{
+  GstElementClass *oclass;
+
+  g_return_if_fail (GST_IS_ELEMENT (element));
+
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CONTEXT, element,
+      "set context %p %" GST_PTR_FORMAT, context,
+      gst_context_get_structure (context));
+
+  if (oclass->set_context)
+    oclass->set_context (element, context);
+}
+
+/**
+ * gst_element_get_context:
+ * @element: a #GstElement to get the context from.
+ *
+ * Gets the current context of the element.
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): The current context of the element
+ */
+GstContext *
+gst_element_get_context (GstElement * element)
+{
+  GstContext *context = NULL;
+
+  g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
+
+  GST_OBJECT_LOCK (element);
+  if (element->context)
+    context = gst_context_ref (element->context);
+  GST_OBJECT_UNLOCK (element);
+
+  return context;
+}
diff --git a/gst/gstelement.h b/gst/gstelement.h
index df71720..15d4c75 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -568,8 +568,10 @@
   GList                *sinkpads;
   guint32               pads_cookie;
 
+  GstContext           *context;
+
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
+  gpointer _gst_reserved[GST_PADDING-1];
 };
 
 /**
@@ -593,6 +595,7 @@
  * @state_changed: called immediately after a new state was set.
  * @post_message: called when a message is posted on the element. Chain up to
  *                the parent class' handler to have it posted on the bus.
+ * @set_context: set a #GstContext on the element
  *
  * GStreamer element class. Override the vmethods to implement the element
  * functionality.
@@ -649,8 +652,10 @@
 
   gboolean              (*post_message)         (GstElement *element, GstMessage *message);
 
+  void                  (*set_context)          (GstElement *element, GstContext *context);
+
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING_LARGE-1];
+  gpointer _gst_reserved[GST_PADDING_LARGE-2];
 };
 
 /* element class pad templates */
@@ -737,6 +742,10 @@
 void                    gst_element_set_bus             (GstElement * element, GstBus * bus);
 GstBus *                gst_element_get_bus             (GstElement * element);
 
+/* context */
+void                    gst_element_set_context         (GstElement * element, GstContext * context);
+GstContext *            gst_element_get_context         (GstElement * element);
+
 /* pad management */
 gboolean                gst_element_add_pad             (GstElement *element, GstPad *pad);
 gboolean                gst_element_remove_pad          (GstElement *element, GstPad *pad);
@@ -765,7 +774,7 @@
 
 /* error handling */
 /* gcc versions < 3.3 warn about NULL being passed as format to printf */
-#if (defined(GST_USING_PRINTF_EXTENSION) || !defined(__GNUC__) || (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3))
+#if (!defined(__GNUC__) || (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3))
 gchar *                 _gst_element_error_printf       (const gchar *format, ...);
 #else
 gchar *                 _gst_element_error_printf       (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index 0b1505d..49bfec1 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -730,17 +730,24 @@
     res = (strstr (klass, "Formatter") != NULL);
 
   /* Filter by media type now, we only test if it
-   * matched any of the types above. */
-  if (res
+   * matched any of the types above or only checking the media
+   * type was requested. */
+  if ((res || !(type & (GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS - 1)))
       && (type & (GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO |
               GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
-              GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)))
+              GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE |
+              GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE |
+              GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA)))
     res = ((type & GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)
         && (strstr (klass, "Audio") != NULL))
         || ((type & GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO)
         && (strstr (klass, "Video") != NULL))
         || ((type & GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)
-        && (strstr (klass, "Image") != NULL));
+        && (strstr (klass, "Image") != NULL)) ||
+        ((type & GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE)
+        && (strstr (klass, "Subtitle") != NULL)) ||
+        ((type & GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA)
+        && (strstr (klass, "Metadata") != NULL));
 
   return res;
 }
diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h
index 337cc4c..4641457 100644
--- a/gst/gstelementfactory.h
+++ b/gst/gstelementfactory.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstelementmetadata.h b/gst/gstelementmetadata.h
index 6c331d9..bdb53c7 100644
--- a/gst/gstelementmetadata.h
+++ b/gst/gstelementmetadata.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ELEMENT_METADATA_H__
diff --git a/gst/gsterror.c b/gst/gsterror.c
index 08321c6..af7a3f8 100644
--- a/gst/gsterror.c
+++ b/gst/gsterror.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsterror.h b/gst/gsterror.h
index a066be9..96eb20a 100644
--- a/gst/gsterror.h
+++ b/gst/gsterror.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ERROR_H__
diff --git a/gst/gstevent.c b/gst/gstevent.c
index eba1e82..0874471 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -116,6 +116,7 @@
   {GST_EVENT_BUFFERSIZE, "buffersize", 0},
   {GST_EVENT_SINK_MESSAGE, "sink-message", 0},
   {GST_EVENT_EOS, "eos", 0},
+  {GST_EVENT_CONTEXT, "context", 0},
   {GST_EVENT_SEGMENT_DONE, "segment-done", 0},
   {GST_EVENT_GAP, "gap", 0},
   {GST_EVENT_QOS, "qos", 0},
@@ -1403,7 +1404,8 @@
   g_return_val_if_fail (stream_id != NULL, NULL);
 
   s = gst_structure_new_id (GST_QUARK (EVENT_STREAM_START),
-      GST_QUARK (STREAM_ID), G_TYPE_STRING, stream_id, NULL);
+      GST_QUARK (STREAM_ID), G_TYPE_STRING, stream_id,
+      GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, GST_STREAM_FLAG_NONE, NULL);
 
   return gst_event_new_custom (GST_EVENT_STREAM_START, s);
 }
@@ -1435,6 +1437,43 @@
 }
 
 /**
+ * gst_event_set_stream_flags:
+ * @event: a stream-start event
+ * @flags: the stream flags to set
+ *
+ * Since: 1.2
+ */
+void
+gst_event_set_stream_flags (GstEvent * event, GstStreamFlags flags)
+{
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
+  g_return_if_fail (gst_event_is_writable (event));
+
+  gst_structure_id_set (GST_EVENT_STRUCTURE (event),
+      GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, flags, NULL);
+}
+
+/**
+ * gst_event_parse_stream_flags:
+ * @event: a stream-start event
+ * @flags: (out): address of variable where to store the stream flags
+ *
+ * Since: 1.2
+ */
+void
+gst_event_parse_stream_flags (GstEvent * event, GstStreamFlags * flags)
+{
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
+
+  if (flags) {
+    gst_structure_id_get (GST_EVENT_STRUCTURE (event),
+        GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, flags, NULL);
+  }
+}
+
+/**
  * gst_event_new_toc:
  * @toc: (transfer none): #GstToc structure.
  * @updated: whether @toc was updated or not.
@@ -1597,3 +1636,56 @@
   if (position != NULL)
     *position = g_value_get_int64 (val);
 }
+
+/**
+ * gst_event_new_context:
+ * @context: (transfer full): the #GstContext
+ *
+ * Create a new context event. The purpose of the context event is
+ * to pass a pipeline-local context to downstream elements.
+ *
+ * Returns: (transfer full): a new #GstEvent
+ *
+ * Since: 1.2
+ */
+GstEvent *
+gst_event_new_context (GstContext * context)
+{
+  GstEvent *event;
+  GstStructure *structure;
+
+  g_return_val_if_fail (context != NULL, NULL);
+
+  GST_CAT_INFO (GST_CAT_EVENT, "creating context event");
+
+  structure = gst_structure_new_id (GST_QUARK (EVENT_SEEK),
+      GST_QUARK (CONTEXT), GST_TYPE_CONTEXT, context, NULL);
+  event = gst_event_new_custom (GST_EVENT_CONTEXT, structure);
+  gst_context_unref (context);
+
+  return event;
+}
+
+/**
+ * gst_event_parse_context:
+ * @event: The event to query
+ * @context: (out) (transfer full): a pointer to store the #GstContext in.
+ *
+ * Parse the context event. Unref @context after usage.
+ *
+ * Since: 1.2
+ */
+void
+gst_event_parse_context (GstEvent * event, GstContext ** context)
+{
+  const GstStructure *structure;
+
+  g_return_if_fail (GST_IS_EVENT (event));
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_CONTEXT);
+
+  structure = GST_EVENT_STRUCTURE (event);
+  if (context)
+    *context =
+        GST_CONTEXT (g_value_dup_boxed (gst_structure_id_get_value
+            (structure, GST_QUARK (CONTEXT))));
+}
diff --git a/gst/gstevent.h b/gst/gstevent.h
index 7907a69..1c4104f 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -99,6 +99,8 @@
  * @GST_EVENT_GAP: Marks a gap in the datastream.
  * @GST_EVENT_TOC: An event which indicates that a new table of contents (TOC)
  *                 was found or updated.
+ * @GST_EVENT_CONTEXT: An event to communicate a #GstContext to other
+ *                 elements (Since 1.2)
  * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
  *                 that the downstream elements should adjust their processing
  *                 rate.
@@ -147,6 +149,7 @@
   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)),
+  GST_EVENT_CONTEXT               = GST_EVENT_MAKE_TYPE (130, 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)),
@@ -180,6 +183,7 @@
 #include <gst/gstsegment.h>
 #include <gst/gstsegment.h>
 #include <gst/gstmessage.h>
+#include <gst/gstcontext.h>
 
 G_BEGIN_DECLS
 
@@ -365,6 +369,30 @@
 } GstQOSType;
 
 /**
+ * GstStreamFlags:
+ * @GST_STREAM_FLAG_NONE: This stream has no special attributes
+ * @GST_STREAM_FLAG_SPARSE: This stream is a sparse stream (e.g. a subtitle
+ *    stream), data may flow only in irregular intervals with large gaps in
+ *    between.
+ * @GST_STREAM_FLAG_SELECT: This stream should be selected by default. This
+ *    flag may be used by demuxers to signal that a stream should be selected
+ *    by default in a playback scenario.
+ * @GST_STREAM_FLAG_UNSELECT: This stream should not be selected by default.
+ *    This flag may be used by demuxers to signal that a stream should not
+ *    be selected by default in a playback scenario, but only if explicitly
+ *    selected by the user (e.g. an audio track for the hard of hearing or
+ *    a director's commentary track).
+ *
+ * Since: 1.2
+ */
+typedef enum {
+  GST_STREAM_FLAG_NONE,
+  GST_STREAM_FLAG_SPARSE       = (1 << 0),
+  GST_STREAM_FLAG_SELECT       = (1 << 1),
+  GST_STREAM_FLAG_UNSELECT     = (1 << 2)
+} GstStreamFlags;
+
+/**
  * GstEvent:
  * @mini_object: the parent structure
  * @type: the #GstEventType of the event
@@ -461,6 +489,9 @@
 GstEvent *      gst_event_new_stream_start      (const gchar *stream_id) G_GNUC_MALLOC;
 void            gst_event_parse_stream_start    (GstEvent *event, const gchar **stream_id);
 
+void            gst_event_set_stream_flags      (GstEvent *event, GstStreamFlags flags);
+void            gst_event_parse_stream_flags    (GstEvent *event, GstStreamFlags *flags);
+
 /* flush events */
 GstEvent *      gst_event_new_flush_start       (void) G_GNUC_MALLOC;
 
@@ -545,6 +576,10 @@
 GstEvent*       gst_event_new_segment_done      (GstFormat format, gint64 position) G_GNUC_MALLOC;
 void            gst_event_parse_segment_done    (GstEvent *event, GstFormat *format, gint64 *position);
 
+/* context */
+GstEvent*       gst_event_new_context           (GstContext * context) G_GNUC_MALLOC;
+void            gst_event_parse_context         (GstEvent *event, GstContext **context);
+
 G_END_DECLS
 
 #endif /* __GST_EVENT_H__ */
diff --git a/gst/gstformat.c b/gst/gstformat.c
index 78b0f07..311b4bd 100644
--- a/gst/gstformat.c
+++ b/gst/gstformat.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstformat.h b/gst/gstformat.h
index 13dad03..d158ea1 100644
--- a/gst/gstformat.h
+++ b/gst/gstformat.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c
index 081594f..98712d8 100644
--- a/gst/gstghostpad.c
+++ b/gst/gstghostpad.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstghostpad.h b/gst/gstghostpad.h
index 77c79c4..cb09031 100644
--- a/gst/gstghostpad.h
+++ b/gst/gstghostpad.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstinfo.c b/gst/gstinfo.c
index 5929d10..93cb188 100644
--- a/gst/gstinfo.c
+++ b/gst/gstinfo.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -98,9 +98,6 @@
 #ifdef HAVE_DLFCN_H
 #  include <dlfcn.h>
 #endif
-#ifdef HAVE_PRINTF_EXTENSION
-#  include <printf.h>
-#endif
 #include <stdio.h>              /* fprintf */
 #include <glib/gstdio.h>
 #include <errno.h>
@@ -121,12 +118,20 @@
 #include "gstquark.h"
 #include "gstsegment.h"
 #include "gstvalue.h"
+#include "gstcapsfeatures.h"
 
 #ifdef HAVE_VALGRIND_VALGRIND_H
 #  include <valgrind/valgrind.h>
 #endif
 #include <glib/gprintf.h>       /* g_sprintf */
 
+/* our own printf implementation with custom extensions to %p for caps etc. */
+#include "printf/printf.h"
+#include "printf/printf-extension.h"
+
+static char *gst_info_printf_pointer_extension_func (const char *format,
+    void *ptr);
+
 #endif /* !GST_DISABLE_GST_DEBUG */
 
 extern gboolean gst_is_initialized (void);
@@ -174,6 +179,7 @@
 GstDebugCategory *_priv_GST_CAT_POLL = NULL;
 GstDebugCategory *GST_CAT_META = NULL;
 GstDebugCategory *GST_CAT_LOCKING = NULL;
+GstDebugCategory *GST_CAT_CONTEXT = NULL;
 
 
 #endif /* !defined(GST_DISABLE_GST_DEBUG) || !defined(GST_REMOVE_DISABLED) */
@@ -221,20 +227,6 @@
 static void gst_debug_reset_threshold (gpointer category, gpointer unused);
 static void gst_debug_reset_all_thresholds (void);
 
-#ifdef GST_USING_PRINTF_EXTENSION
-static int _gst_info_printf_extension_ptr (FILE * stream,
-    const struct printf_info *info, const void *const *args);
-static int _gst_info_printf_extension_segment (FILE * stream,
-    const struct printf_info *info, const void *const *args);
-#ifdef HAVE_REGISTER_PRINTF_SPECIFIER
-static int _gst_info_printf_extension_arginfo (const struct printf_info *info,
-    size_t n, int *argtypes, int *size);
-#else
-static int _gst_info_printf_extension_arginfo (const struct printf_info *info,
-    size_t n, int *argtypes);
-#endif
-#endif
-
 struct _GstDebugMessage
 {
   gchar *message;
@@ -333,19 +325,8 @@
   /* get time we started for debugging messages */
   _priv_gst_info_start_time = gst_util_get_timestamp ();
 
-#ifdef GST_USING_PRINTF_EXTENSION
-#ifdef HAVE_REGISTER_PRINTF_SPECIFIER
-  register_printf_specifier (GST_PTR_FORMAT[0], _gst_info_printf_extension_ptr,
-      _gst_info_printf_extension_arginfo);
-  register_printf_specifier (GST_SEGMENT_FORMAT[0],
-      _gst_info_printf_extension_segment, _gst_info_printf_extension_arginfo);
-#else
-  register_printf_function (GST_PTR_FORMAT[0], _gst_info_printf_extension_ptr,
-      _gst_info_printf_extension_arginfo);
-  register_printf_function (GST_SEGMENT_FORMAT[0],
-      _gst_info_printf_extension_segment, _gst_info_printf_extension_arginfo);
-#endif
-#endif
+  __gst_printf_pointer_extension_set_func
+      (gst_info_printf_pointer_extension_func);
 
   /* do NOT use a single debug function before this line has been run */
   GST_CAT_DEFAULT = _gst_debug_category_new ("default",
@@ -413,7 +394,7 @@
   _priv_GST_CAT_POLL = _gst_debug_category_new ("GST_POLL", 0, "poll");
   GST_CAT_META = _gst_debug_category_new ("GST_META", 0, "meta");
   GST_CAT_LOCKING = _gst_debug_category_new ("GST_LOCKING", 0, "locking");
-
+  GST_CAT_CONTEXT = _gst_debug_category_new ("GST_CONTEXT", 0, NULL);
 
   /* print out the valgrind message if we're in valgrind */
   _priv_gst_in_valgrind ();
@@ -545,7 +526,13 @@
 gst_debug_message_get (GstDebugMessage * message)
 {
   if (message->message == NULL) {
-    message->message = g_strdup_vprintf (message->format, message->arguments);
+    int len;
+
+    len = __gst_vasprintf (&message->message, message->format,
+        message->arguments);
+
+    if (len < 0)
+      message->message = NULL;
   }
   return message->message;
 }
@@ -553,25 +540,19 @@
 #define MAX_BUFFER_DUMP_STRING_LEN  100
 
 /* structure_to_pretty_string:
- * @structure: a #GstStructure
+ * @str: a serialized #GstStructure
  *
- * Converts @structure to a human-readable string representation. Basically
- * the same as gst_structure_to_string(), but if the structure contains large
- * buffers such as images the hex representation of those buffers will be
- * shortened so that the string remains readable.
+ * If the serialized structure contains large buffers such as images the hex
+ * representation of those buffers will be shortened so that the string remains
+ * readable.
  *
- * Returns: a newly-allocated string. g_free() when no longer needed.
+ * Returns: the filtered string
  */
 static gchar *
-structure_to_pretty_string (const GstStructure * s)
+prettify_structure_string (gchar * str)
 {
-  gchar *str, *pos, *end;
+  gchar *pos = str, *end;
 
-  str = gst_structure_to_string (s);
-  if (str == NULL)
-    return NULL;
-
-  pos = str;
   while ((pos = strstr (pos, "(buffer)"))) {
     guint count = 0;
 
@@ -593,10 +574,69 @@
 static inline gchar *
 gst_info_structure_to_string (const GstStructure * s)
 {
-  if (G_UNLIKELY (pretty_tags && s->name == GST_QUARK (TAGLIST)))
-    return structure_to_pretty_string (s);
-  else
-    return gst_structure_to_string (s);
+  if (G_LIKELY (s)) {
+    gchar *str = gst_structure_to_string (s);;
+    if (G_UNLIKELY (pretty_tags && s->name == GST_QUARK (TAGLIST)))
+      return prettify_structure_string (str);
+    else
+      return str;
+  }
+  return NULL;
+}
+
+static inline gchar *
+gst_info_describe_buffer (GstBuffer * buffer)
+{
+  return g_strdup_printf ("buffer: %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
+      ", flags 0x%x", buffer, GST_TIME_ARGS (GST_BUFFER_PTS (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DTS (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)),
+      gst_buffer_get_size (buffer), GST_BUFFER_OFFSET (buffer),
+      GST_BUFFER_OFFSET_END (buffer), GST_BUFFER_FLAGS (buffer));
+}
+
+static inline gchar *
+gst_info_describe_event (GstEvent * event)
+{
+  gchar *s, *ret;
+
+  s = gst_info_structure_to_string (gst_event_get_structure (event));
+  ret = g_strdup_printf ("%s event: %p, time %" GST_TIME_FORMAT
+      ", seq-num %d, %s", GST_EVENT_TYPE_NAME (event), event,
+      GST_TIME_ARGS (GST_EVENT_TIMESTAMP (event)), GST_EVENT_SEQNUM (event),
+      (s ? s : "(NULL)"));
+  g_free (s);
+  return ret;
+}
+
+static inline gchar *
+gst_info_describe_message (GstMessage * message)
+{
+  gchar *s, *ret;
+
+  s = gst_info_structure_to_string (gst_message_get_structure (message));
+  ret = g_strdup_printf ("%s message: %p, time %" GST_TIME_FORMAT
+      ", seq-num %d, element '%s', %s", GST_MESSAGE_TYPE_NAME (message),
+      message, GST_TIME_ARGS (GST_MESSAGE_TIMESTAMP (message)),
+      GST_MESSAGE_SEQNUM (message),
+      ((message->src) ? GST_ELEMENT_NAME (message->src) : "(NULL)"),
+      (s ? s : "(NULL)"));
+  g_free (s);
+  return ret;
+}
+
+static inline gchar *
+gst_info_describe_query (GstQuery * query)
+{
+  gchar *s, *ret;
+
+  s = gst_info_structure_to_string (gst_query_get_structure (query));
+  ret = g_strdup_printf ("%s query: %p, %s", GST_QUERY_TYPE_NAME (query),
+      query, (s ? s : "(NULL)"));
+  g_free (s);
+  return ret;
 }
 
 static gchar *
@@ -627,26 +667,21 @@
   if (*(GType *) ptr == GST_TYPE_STRUCTURE) {
     return gst_info_structure_to_string ((const GstStructure *) ptr);
   }
+  if (*(GType *) ptr == GST_TYPE_CAPS_FEATURES) {
+    return gst_caps_features_to_string ((const GstCapsFeatures *) ptr);
+  }
   if (*(GType *) ptr == GST_TYPE_TAG_LIST) {
-    /* FIXME: want pretty tag list with long byte dumps removed.. */
-    return gst_tag_list_to_string ((GstTagList *) ptr);
+    gchar *str = gst_tag_list_to_string ((GstTagList *) ptr);
+    if (G_UNLIKELY (pretty_tags))
+      return prettify_structure_string (str);
+    else
+      return str;
   }
   if (*(GType *) ptr == GST_TYPE_DATE_TIME) {
     return __gst_date_time_serialize ((GstDateTime *) ptr, TRUE);
   }
   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;
+    return gst_info_describe_buffer (GST_BUFFER_CAST (ptr));
   }
 #ifdef USE_POISONING
   if (*(guint32 *) ptr == 0xffffffff) {
@@ -663,58 +698,28 @@
     return g_strdup_printf ("<%s@%p>", G_OBJECT_TYPE_NAME (object), object);
   }
   if (GST_IS_MESSAGE (object)) {
-    GstMessage *msg = GST_MESSAGE_CAST (object);
-    gchar *s, *ret;
-    const GstStructure *structure;
-
-    structure = gst_message_get_structure (msg);
-
-    if (structure) {
-      s = gst_info_structure_to_string (structure);
-    } else {
-      s = g_strdup ("(NULL)");
-    }
-
-    ret = g_strdup_printf ("%s message from element '%s': %s",
-        GST_MESSAGE_TYPE_NAME (msg), (msg->src != NULL) ?
-        GST_ELEMENT_NAME (msg->src) : "(NULL)", s);
-    g_free (s);
-    return ret;
+    return gst_info_describe_message (GST_MESSAGE_CAST (object));
   }
   if (GST_IS_QUERY (object)) {
-    GstQuery *query = GST_QUERY_CAST (object);
-    const GstStructure *structure;
-
-    structure = gst_query_get_structure (query);
-
-    if (structure) {
-      return gst_info_structure_to_string (structure);
-    } else {
-      const gchar *query_type_name;
-
-      query_type_name = gst_query_type_get_name (query->type);
-      if (G_LIKELY (query_type_name != NULL)) {
-        return g_strdup_printf ("%s query", query_type_name);
-      } else {
-        return g_strdup_printf ("query of unknown type %d", query->type);
-      }
-    }
+    return gst_info_describe_query (GST_QUERY_CAST (object));
   }
   if (GST_IS_EVENT (object)) {
-    GstEvent *event = GST_EVENT_CAST (object);
+    return gst_info_describe_event (GST_EVENT_CAST (object));
+  }
+  if (GST_IS_CONTEXT (object)) {
+    GstContext *context = GST_CONTEXT_CAST (object);
     gchar *s, *ret;
-    GstStructure *structure;
+    const GstStructure *structure;
 
-    structure = (GstStructure *) gst_event_get_structure (event);
+    structure = gst_context_get_structure (context);
+
     if (structure) {
       s = gst_info_structure_to_string (structure);
     } else {
       s = g_strdup ("(NULL)");
     }
 
-    ret = g_strdup_printf ("%s event at time %"
-        GST_TIME_FORMAT ": %s",
-        GST_EVENT_TYPE_NAME (event), GST_TIME_ARGS (event->timestamp), s);
+    ret = g_strdup_printf ("context '%s'", s);
     g_free (s);
     return ret;
   }
@@ -722,8 +727,6 @@
   return g_strdup_printf ("%p", ptr);
 }
 
-#ifdef GST_USING_PRINTF_EXTENSION
-
 static gchar *
 gst_debug_print_segment (gpointer ptr)
 {
@@ -765,7 +768,30 @@
   }
 }
 
-#endif /* GST_USING_PRINTF_EXTENSION */
+static char *
+gst_info_printf_pointer_extension_func (const char *format, void *ptr)
+{
+  char *s = NULL;
+
+  if (format[0] == 'p' && format[1] == '\a') {
+    switch (format[2]) {
+      case 'A':                /* GST_PTR_FORMAT     */
+        s = gst_debug_print_object (ptr);
+        break;
+      case 'B':                /* GST_SEGMENT_FORMAT */
+        s = gst_debug_print_segment (ptr);
+        break;
+      default:
+        /* must have been compiled against a newer version with an extension
+         * we don't known about yet - just ignore and fallback to %p below */
+        break;
+    }
+  }
+  if (s == NULL)
+    s = g_strdup_printf ("%p", ptr);
+
+  return s;
+}
 
 /**
  * gst_debug_construct_term_color:
@@ -1601,6 +1627,110 @@
   return NULL;
 }
 
+static gboolean
+parse_debug_category (gchar * str, const gchar ** category)
+{
+  if (!str)
+    return FALSE;
+
+  /* works in place */
+  g_strstrip (str);
+
+  if (str[0] != '\0') {
+    *category = str;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+static gboolean
+parse_debug_level (gchar * str, GstDebugLevel * level)
+{
+  if (!str)
+    return FALSE;
+
+  /* works in place */
+  g_strstrip (str);
+
+  if (str[0] != '\0' && str[1] == '\0'
+      && str[0] >= '0' && str[0] < '0' + GST_LEVEL_COUNT) {
+    *level = (GstDebugLevel) (str[0] - '0');
+  } else if (strcmp (str, "ERROR") == 0) {
+    *level = GST_LEVEL_ERROR;
+  } else if (strncmp (str, "WARN", 4) == 0) {
+    *level = GST_LEVEL_WARNING;
+  } else if (strcmp (str, "FIXME") == 0) {
+    *level = GST_LEVEL_FIXME;
+  } else if (strcmp (str, "INFO") == 0) {
+    *level = GST_LEVEL_INFO;
+  } else if (strcmp (str, "DEBUG") == 0) {
+    *level = GST_LEVEL_DEBUG;
+  } else if (strcmp (str, "LOG") == 0) {
+    *level = GST_LEVEL_LOG;
+  } else if (strcmp (str, "TRACE") == 0) {
+    *level = GST_LEVEL_TRACE;
+  } else if (strcmp (str, "MEMDUMP") == 0) {
+    *level = GST_LEVEL_MEMDUMP;
+  } else
+    return FALSE;
+
+  return TRUE;
+}
+
+/**
+ * gst_debug_set_threshold_from_string:
+ * @list: comma-separated list of "category:level" pairs to be used
+ *     as debug logging levels
+ * @reset: %TRUE to clear all previously-set debug levels before setting
+ *     new thresholds
+ * %FALSE if adding the threshold described by @list to the one already set.
+ *
+ * Sets the debug logging wanted in the same form as with the GST_DEBUG
+ * environment variable. You can use wildcards such as '*', but note that
+ * the order matters when you use wild cards, e.g. "foosrc:6,*src:3,*:2" sets
+ * everything to log level 2.
+ *
+ * Since: 1.2.0
+ */
+void
+gst_debug_set_threshold_from_string (const gchar * list, gboolean reset)
+{
+  gchar **split;
+  gchar **walk;
+
+  g_assert (list);
+
+  if (reset == TRUE)
+    gst_debug_set_default_threshold (0);
+
+  split = g_strsplit (list, ",", 0);
+
+  for (walk = split; *walk; walk++) {
+    if (strchr (*walk, ':')) {
+      gchar **values = g_strsplit (*walk, ":", 2);
+
+      if (values[0] && values[1]) {
+        GstDebugLevel level;
+        const gchar *category;
+
+        if (parse_debug_category (values[0], &category)
+            && parse_debug_level (values[1], &level))
+          gst_debug_set_threshold_for_name (category, level);
+      }
+
+      g_strfreev (values);
+    } else {
+      GstDebugLevel level;
+
+      if (parse_debug_level (*walk, &level))
+        gst_debug_set_default_threshold (level);
+    }
+  }
+
+  g_strfreev (split);
+}
+
 /*** FUNCTION POINTERS ********************************************************/
 
 static GHashTable *__gst_function_pointers;     /* NULL */
@@ -1661,67 +1791,6 @@
   g_mutex_unlock (&__dbg_functions_mutex);
 }
 
-/*** PRINTF EXTENSIONS ********************************************************/
-
-#ifdef GST_USING_PRINTF_EXTENSION
-static int
-_gst_info_printf_extension_ptr (FILE * stream, const struct printf_info *info,
-    const void *const *args)
-{
-  char *buffer;
-  int len;
-  void *ptr;
-
-  buffer = NULL;
-  ptr = *(void **) args[0];
-
-  buffer = gst_debug_print_object (ptr);
-  len = fprintf (stream, "%*s", (info->left ? -info->width : info->width),
-      buffer);
-
-  g_free (buffer);
-  return len;
-}
-
-static int
-_gst_info_printf_extension_segment (FILE * stream,
-    const struct printf_info *info, const void *const *args)
-{
-  char *buffer;
-  int len;
-  void *ptr;
-
-  buffer = NULL;
-  ptr = *(void **) args[0];
-
-  buffer = gst_debug_print_segment (ptr);
-  len = fprintf (stream, "%*s", (info->left ? -info->width : info->width),
-      buffer);
-
-  g_free (buffer);
-  return len;
-}
-
-#ifdef HAVE_REGISTER_PRINTF_SPECIFIER
-static int
-_gst_info_printf_extension_arginfo (const struct printf_info *info, size_t n,
-    int *argtypes, int *size)
-#else
-static int
-_gst_info_printf_extension_arginfo (const struct printf_info *info, size_t n,
-    int *argtypes)
-#endif
-{
-  if (n > 0) {
-    argtypes[0] = PA_POINTER;
-#ifdef HAVE_REGISTER_PRINTF_SPECIFIER
-    *size = sizeof (gpointer);
-#endif
-  }
-  return 1;
-}
-#endif /* GST_USING_PRINTF_EXTENSION */
-
 static void
 gst_info_dump_mem_line (gchar * linebuf, gsize linebuf_size,
     const guint8 * mem, gsize mem_offset, gsize mem_size)
@@ -1874,6 +1943,11 @@
 }
 
 void
+gst_debug_set_threshold_from_string (const gchar * list, gboolean reset)
+{
+}
+
+void
 gst_debug_set_default_threshold (GstDebugLevel level)
 {
 }
@@ -1973,6 +2047,46 @@
 #endif /* GST_REMOVE_DISABLED */
 #endif /* GST_DISABLE_GST_DEBUG */
 
+/* Need this for _gst_element_error_printf even if GST_REMOVE_DISABLED is set:
+ * fallback function that cleans up the format string and replaces all pointer
+ * extension formats with plain %p. */
+#ifdef GST_DISABLE_GST_DEBUG
+#include <glib/gprintf.h>
+int
+__gst_info_fallback_vasprintf (char **result, char const *format, va_list args)
+{
+  gchar *clean_format, *c;
+  gsize len;
+
+  if (format == NULL)
+    return -1;
+
+  clean_format = g_strdup (format);
+  c = clean_format;
+  while ((c = strstr (c, "%p\a"))) {
+    if (c[3] < 'A' || c[3] > 'Z') {
+      c += 3;
+      continue;
+    }
+    len = strlen (c + 4);
+    g_memmove (c + 2, c + 4, len + 1);
+    c += 2;
+  }
+  while ((c = strstr (clean_format, "%P")))     /* old GST_PTR_FORMAT */
+    c[1] = 'p';
+  while ((c = strstr (clean_format, "%Q")))     /* old GST_SEGMENT_FORMAT */
+    c[1] = 'p';
+
+  len = g_vasprintf (result, clean_format, args);
+
+  g_free (clean_format);
+
+  if (*result == NULL)
+    return -1;
+
+  return len;
+}
+#endif
 
 #ifdef GST_ENABLE_FUNC_INSTRUMENTATION
 /* FIXME make this thread specific */
diff --git a/gst/gstinfo.h b/gst/gstinfo.h
index 0757aac..68f099b 100644
--- a/gst/gstinfo.h
+++ b/gst/gstinfo.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GSTINFO_H__
@@ -229,6 +229,21 @@
 #endif
 #endif /* ifndef GST_FUNCTION */
 
+/**
+ * GST_PTR_FORMAT:
+ *
+ * printf format type used to debug GStreamer types.
+ * This can only be used on types whose size is >= sizeof(gpointer).
+ */
+#define GST_PTR_FORMAT     "p\aA"
+
+/**
+ * GST_SEGMENT_FORMAT:
+ *
+ * printf format type used to debug GStreamer segments.
+ * This can only be used on pointers to GstSegment structures.
+ */
+#define GST_SEGMENT_FORMAT "p\aB"
 
 typedef struct _GstDebugMessage GstDebugMessage;
 
@@ -256,20 +271,6 @@
                                  GstDebugMessage  * message,
                                  gpointer           user_data);
 
-#ifdef GST_USING_PRINTF_EXTENSION
-
-/* not using G_GNUC_PRINTF, since gcc will choke on GST_PTR_FORMAT being %P */
-void		    gst_debug_log            (GstDebugCategory * category,
-                                          GstDebugLevel      level,
-                                          const gchar      * file,
-                                          const gchar      * function,
-                                          gint               line,
-                                          GObject          * object,
-                                          const gchar      * format,
-                                          ...) G_GNUC_NO_INSTRUMENT;
-
-#else /* GST_USING_PRINTF_EXTENSION */
-
 void		    gst_debug_log            (GstDebugCategory * category,
                                           GstDebugLevel      level,
                                           const gchar      * file,
@@ -279,8 +280,6 @@
                                           const gchar      * format,
                                           ...) G_GNUC_PRINTF (7, 8) G_GNUC_NO_INSTRUMENT;
 
-#endif /* GST_USING_PRINTF_EXTENSION */
-
 void            gst_debug_log_valist     (GstDebugCategory * category,
                                           GstDebugLevel      level,
                                           const gchar      * file,
@@ -346,6 +345,7 @@
 GstDebugLevel   gst_debug_get_default_threshold      (void);
 void            gst_debug_set_threshold_for_name     (const gchar * name,
                                                       GstDebugLevel level);
+void            gst_debug_set_threshold_from_string  (const gchar * list, gboolean reset);
 void            gst_debug_unset_threshold_for_name   (const gchar * name);
 
 
diff --git a/gst/gstiterator.c b/gst/gstiterator.c
index 3c9238c..0a63a90 100644
--- a/gst/gstiterator.c
+++ b/gst/gstiterator.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstiterator.h b/gst/gstiterator.h
index 2a21f8b..7ad54ee 100644
--- a/gst/gstiterator.h
+++ b/gst/gstiterator.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ITERATOR_H__
diff --git a/gst/gstmacros.h b/gst/gstmacros.h
index e38af53..47f9917 100644
--- a/gst/gstmacros.h
+++ b/gst/gstmacros.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef __GST_MACROS_H__
 #define __GST_MACROS_H__
diff --git a/gst/gstmemory.c b/gst/gstmemory.c
index 5796e04..1f44e7b 100644
--- a/gst/gstmemory.c
+++ b/gst/gstmemory.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -83,6 +83,8 @@
 static void
 _gst_memory_free (GstMemory * mem)
 {
+  GstAllocator *allocator;
+
   GST_CAT_DEBUG (GST_CAT_MEMORY, "free memory %p", mem);
 
   if (mem->parent) {
@@ -90,7 +92,10 @@
     gst_memory_unref (mem->parent);
   }
 
-  gst_allocator_free (mem->allocator, mem);
+  allocator = mem->allocator;
+
+  gst_allocator_free (allocator, mem);
+  gst_object_unref (allocator);
 }
 
 /**
@@ -117,7 +122,7 @@
       (GstMiniObjectCopyFunction) _gst_memory_copy, NULL,
       (GstMiniObjectFreeFunction) _gst_memory_free);
 
-  mem->allocator = allocator;
+  mem->allocator = gst_object_ref (allocator);
   if (parent) {
     gst_memory_lock (parent, GST_LOCK_FLAG_EXCLUSIVE);
     gst_memory_ref (parent);
@@ -134,6 +139,27 @@
 }
 
 /**
+ * gst_memory_is_type:
+ * @mem: a #GstMemory
+ * @mem_type: a memory type
+ *
+ * Check if @mem if allocated with an allocator for @mem_type.
+ *
+ * Returns: %TRUE if @mem was allocated from an allocator for @mem_type.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_memory_is_type (GstMemory * mem, const gchar * mem_type)
+{
+  g_return_val_if_fail (mem != NULL, FALSE);
+  g_return_val_if_fail (mem->allocator != NULL, FALSE);
+  g_return_val_if_fail (mem_type != NULL, FALSE);
+
+  return (g_strcmp0 (mem->allocator->mem_type, mem_type) == 0);
+}
+
+/**
  * gst_memory_get_sizes:
  * @mem: a #GstMemory
  * @offset: pointer to offset
diff --git a/gst/gstmemory.h b/gst/gstmemory.h
index 0820818..b5180ca 100644
--- a/gst/gstmemory.h
+++ b/gst/gstmemory.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -45,6 +45,8 @@
  * 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_PHYSICALLY_CONTIGUOUS: the memory is physically contiguous. Since 1.2
+ * @GST_MEMORY_FLAG_NOT_MAPPABLE: the memory can't be mapped via gst_memory_map() without any preconditions. Since 1.2
  * @GST_MEMORY_FLAG_LAST: first flag that can be used for custom purposes
  *
  * Flags for wrapped memory.
@@ -54,6 +56,8 @@
   GST_MEMORY_FLAG_NO_SHARE      = (GST_MINI_OBJECT_FLAG_LAST << 0),
   GST_MEMORY_FLAG_ZERO_PREFIXED = (GST_MINI_OBJECT_FLAG_LAST << 1),
   GST_MEMORY_FLAG_ZERO_PADDED   = (GST_MINI_OBJECT_FLAG_LAST << 2),
+  GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS = (GST_MINI_OBJECT_FLAG_LAST << 3),
+  GST_MEMORY_FLAG_NOT_MAPPABLE  = (GST_MINI_OBJECT_FLAG_LAST << 4),
 
   GST_MEMORY_FLAG_LAST          = (GST_MINI_OBJECT_FLAG_LAST << 16)
 } GstMemoryFlags;
@@ -111,6 +115,25 @@
  */
 #define GST_MEMORY_IS_ZERO_PADDED(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_ZERO_PADDED)
 
+/**
+ * GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS:
+ * @mem: a #GstMemory.
+ *
+ * Check if @mem is physically contiguous.
+ *
+ * Since: 1.2
+ */
+#define GST_MEMORY_IS_PHYSICALLY_CONTIGUOUS(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS)
+
+/**
+ * GST_MEMORY_IS_NOT_MAPPABLE:
+ * @mem: a #GstMemory.
+ *
+ * Check if @mem can't be mapped via gst_memory_map() without any preconditions
+ *
+ * Since: 1.2
+ */
+#define GST_MEMORY_IS_NOT_MAPPABLE(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_NOT_MAPPABLE)
 
 /**
  * GstMemory:
@@ -264,6 +287,9 @@
                                         GstAllocator *allocator, GstMemory *parent,
                                         gsize maxsize, gsize align,
                                         gsize offset, gsize size);
+
+gboolean       gst_memory_is_type      (GstMemory *mem, const gchar *mem_type);
+
 /* refcounting */
 /**
  * gst_memory_ref:
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 58b4d85..cb81bf7 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -1405,7 +1405,7 @@
  * @format: (out) (allow-none): Result location for the format, or NULL
  * @position: (out) (allow-none): Result location for the position, or NULL
  *
- * Extracts the position and format from the segment start message.
+ * Extracts the position and format from the segment done message.
  *
  * MT safe.
  */
@@ -2151,3 +2151,185 @@
 
   return message;
 }
+
+/**
+ * gst_message_new_need_context:
+ * @src: (transfer none): The object originating the message.
+ *
+ * This message is posted when an element needs a specific #GstContext.
+ *
+ * Returns: (transfer full): The new need-context message.
+ *
+ * MT safe.
+ */
+GstMessage *
+gst_message_new_need_context (GstObject * src)
+{
+  GstMessage *message;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id_empty (GST_QUARK (MESSAGE_NEED_CONTEXT));
+  message = gst_message_new_custom (GST_MESSAGE_NEED_CONTEXT, src, structure);
+
+  return message;
+}
+
+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;
+}
+
+static void
+free_array_string (gpointer ptr)
+{
+  gchar *str = *(gchar **) ptr;
+  g_free (str);
+}
+
+/**
+ * gst_message_add_context_type:
+ * @message: a GST_MESSAGE_NEED_CONTEXT type message
+ * @context_type: a context type
+ *
+ * Add a new context type to @message.
+ */
+void
+gst_message_add_context_type (GstMessage * message, const gchar * context_type)
+{
+  GstStructure *structure;
+  GArray *array;
+  gchar *copy;
+
+  g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_NEED_CONTEXT);
+  g_return_if_fail (gst_message_is_writable (message));
+
+  structure = GST_MESSAGE_STRUCTURE (message);
+  array = ensure_array (structure, GST_QUARK (CONTEXT_TYPES),
+      sizeof (gchar *), free_array_string);
+
+  copy = g_strdup (context_type);
+  g_array_append_val (array, copy);
+}
+
+/**
+ * gst_message_get_n_context_types:
+ * @message: a GST_MESSAGE_NEED_CONTEXT type message
+ *
+ * Retrieve the number of values currently stored in the
+ * context-types array of the message's structure.
+ *
+ * Returns: the context-types array size as a #guint.
+ */
+guint
+gst_message_get_n_context_types (GstMessage * message)
+{
+  GstStructure *structure;
+  GArray *array;
+
+  g_return_val_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_NEED_CONTEXT,
+      0);
+
+  structure = GST_MESSAGE_STRUCTURE (message);
+  array = ensure_array (structure, GST_QUARK (CONTEXT_TYPES),
+      sizeof (gchar *), free_array_string);
+
+  return array->len;
+}
+
+/**
+ * gst_message_parse_nth_context_type:
+ * @message: a GST_MESSAGE_NEED_CONTEXT type message
+ * @context_type: (out) (allow-none): the context type, or NULL
+ *
+ * Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message
+ * from @index.
+ *
+ * Returns: a #gboolean indicating if the parsing succeeded.
+ */
+gboolean
+gst_message_parse_nth_context_type (GstMessage * message, guint index,
+    const gchar ** context_type)
+{
+  GstStructure *structure;
+  GArray *array;
+
+  g_return_val_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_NEED_CONTEXT,
+      FALSE);
+
+  structure = GST_MESSAGE_STRUCTURE (message);
+
+  array = ensure_array (structure, GST_QUARK (CONTEXT_TYPES),
+      sizeof (gchar *), free_array_string);
+  g_return_val_if_fail (index < array->len, FALSE);
+
+  if (context_type)
+    *context_type = g_array_index (array, gchar *, index);
+
+  return TRUE;
+}
+
+/**
+ * gst_message_new_have_context:
+ * @src: (transfer none): The object originating the message.
+ * @context: (transfer full): the context
+ *
+ * This message is posted when an element has a new local #GstContext.
+ *
+ * Returns: (transfer full): The new have-context message.
+ *
+ * MT safe.
+ */
+GstMessage *
+gst_message_new_have_context (GstObject * src, GstContext * context)
+{
+  GstMessage *message;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_HAVE_CONTEXT),
+      GST_QUARK (CONTEXT), GST_TYPE_CONTEXT, context, NULL);
+  message = gst_message_new_custom (GST_MESSAGE_HAVE_CONTEXT, src, structure);
+  gst_context_unref (context);
+
+  return message;
+}
+
+/**
+ * gst_message_parse_have_context:
+ * @message: A valid #GstMessage of type GST_MESSAGE_HAVE_CONTEXT.
+ * @context: (out) (transfer full) (allow-none): Result location for the
+ *      context or NULL
+ *
+ * Extract the context from the HAVE_CONTEXT message.
+ *
+ * MT safe.
+ */
+void
+gst_message_parse_have_context (GstMessage * message, GstContext ** context)
+{
+  g_return_if_fail (GST_IS_MESSAGE (message));
+  g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_HAVE_CONTEXT);
+
+  if (context)
+    gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
+        GST_QUARK (CONTEXT), GST_TYPE_CONTEXT, context, NULL);
+}
diff --git a/gst/gstmessage.h b/gst/gstmessage.h
index 0328667..802ee17 100644
--- a/gst/gstmessage.h
+++ b/gst/gstmessage.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MESSAGE_H__
@@ -136,6 +136,8 @@
   GST_MESSAGE_TOC               = (1 << 26),
   GST_MESSAGE_RESET_TIME        = (1 << 27),
   GST_MESSAGE_STREAM_START      = (1 << 28),
+  GST_MESSAGE_NEED_CONTEXT      = (1 << 29),
+  GST_MESSAGE_HAVE_CONTEXT      = (1 << 30),
   GST_MESSAGE_ANY               = ~0
 } GstMessageType;
 
@@ -557,6 +559,16 @@
 /* STREAM_START */
 GstMessage *    gst_message_new_stream_start    (GstObject * src) G_GNUC_MALLOC;
 
+/* NEED_CONTEXT */
+GstMessage *    gst_message_new_need_context    (GstObject * src) G_GNUC_MALLOC;
+void            gst_message_add_context_type    (GstMessage * message, const gchar * context_type);
+guint           gst_message_get_n_context_types (GstMessage * message);
+gboolean        gst_message_parse_nth_context_type (GstMessage * message, guint i, const gchar ** context_type);
+
+/* HAVE_CONTEXT */
+GstMessage *    gst_message_new_have_context    (GstObject * src, GstContext *context) G_GNUC_MALLOC;
+void            gst_message_parse_have_context  (GstMessage *message, GstContext **context);
+
 G_END_DECLS
 
 #endif /* __GST_MESSAGE_H__ */
diff --git a/gst/gstmeta.c b/gst/gstmeta.c
index bc1cb76..819c72e 100644
--- a/gst/gstmeta.c
+++ b/gst/gstmeta.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstmeta.h b/gst/gstmeta.h
index e6d4f00..08411e3 100644
--- a/gst/gstmeta.h
+++ b/gst/gstmeta.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c
index 741cafd..25efc08 100644
--- a/gst/gstminiobject.c
+++ b/gst/gstminiobject.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstminiobject
diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h
index f873b7a..7ae012d 100644
--- a/gst/gstminiobject.h
+++ b/gst/gstminiobject.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstobject.c b/gst/gstobject.c
index dace38b..3300464 100644
--- a/gst/gstobject.c
+++ b/gst/gstobject.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -47,7 +47,7 @@
  * <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
+ * are queued for element-properties. At run-time the elements continuously pull
  * values changes for the current stream-time.
  *
  * What needs to be changed in a #GstElement?
@@ -1162,12 +1162,13 @@
  * @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.
+ * Attach the #GstControlBinding to the object. 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.
+ * Returns: %FALSE if the given @binding has not been setup for this object or
+ * has been setup for a non suitable property, %TRUE otherwise.
  */
 gboolean
 gst_object_add_control_binding (GstObject * object, GstControlBinding * binding)
@@ -1176,6 +1177,7 @@
 
   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 (binding->pspec, FALSE);
 
   GST_OBJECT_LOCK (object);
   if ((old = gst_object_find_control_binding (object, binding->name))) {
diff --git a/gst/gstobject.h b/gst/gstobject.h
index 6c9f9f5..209fe6c 100644
--- a/gst/gstobject.h
+++ b/gst/gstobject.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OBJECT_H__
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 4b1181f..e1f386a 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstpad
@@ -359,7 +359,7 @@
 }
 
 /* called when setting the pad inactive. It removes all sticky events from
- * the pad */
+ * the pad. must be called with object lock */
 static void
 remove_events (GstPad * pad)
 {
@@ -371,13 +371,26 @@
   len = events->len;
   for (i = 0; i < len; i++) {
     PadEvent *ev = &g_array_index (events, PadEvent, i);
-    gst_event_unref (ev->event);
+    GstEvent *event = ev->event;
+
+    ev->event = NULL;
+
+    if (event && GST_EVENT_TYPE (event) == GST_EVENT_CAPS) {
+      GST_OBJECT_UNLOCK (pad);
+
+      GST_DEBUG_OBJECT (pad, "notify caps");
+      g_object_notify_by_pspec ((GObject *) pad, pspec_caps);
+
+      GST_OBJECT_LOCK (pad);
+    }
+    gst_event_unref (event);
   }
   GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
   g_array_set_size (events, 0);
   pad->priv->events_cookie++;
 }
 
+/* should be called with object lock */
 static PadEvent *
 find_event_by_type (GstPad * pad, GstEventType type, guint idx)
 {
@@ -404,6 +417,7 @@
   return ev;
 }
 
+/* should be called with OBJECT lock */
 static PadEvent *
 find_event (GstPad * pad, GstEvent * event)
 {
@@ -424,6 +438,7 @@
   return ev;
 }
 
+/* should be called with OBJECT lock */
 static void
 remove_event_by_type (GstPad * pad, GstEventType type)
 {
@@ -457,6 +472,7 @@
 /* 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 */
+/* should be called with srcpad and sinkpad LOCKS */
 static void
 schedule_events (GstPad * srcpad, GstPad * sinkpad)
 {
@@ -603,7 +619,9 @@
 
   gst_pad_set_pad_template (pad, NULL);
 
+  GST_OBJECT_LOCK (pad);
   remove_events (pad);
+  GST_OBJECT_UNLOCK (pad);
 
   g_hook_list_clear (&pad->probes);
 
@@ -1382,8 +1400,13 @@
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
 
   GST_OBJECT_LOCK (pad);
-  reconfigure = GST_PAD_NEEDS_RECONFIGURE (pad);
-  GST_DEBUG_OBJECT (pad, "peeking RECONFIGURE flag %d", reconfigure);
+  if (GST_PAD_IS_FLUSHING (pad)) {
+    GST_DEBUG_OBJECT (pad, "pad is flushing");
+    reconfigure = FALSE;
+  } else {
+    reconfigure = GST_PAD_NEEDS_RECONFIGURE (pad);
+    GST_DEBUG_OBJECT (pad, "peeking RECONFIGURE flag %d", reconfigure);
+  }
   GST_OBJECT_UNLOCK (pad);
 
   return reconfigure;
@@ -1406,10 +1429,15 @@
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
 
   GST_OBJECT_LOCK (pad);
-  reconfigure = GST_PAD_NEEDS_RECONFIGURE (pad);
-  if (reconfigure) {
-    GST_DEBUG_OBJECT (pad, "remove RECONFIGURE flag");
-    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
+  if (GST_PAD_IS_FLUSHING (pad)) {
+    GST_DEBUG_OBJECT (pad, "pad is flushing");
+    reconfigure = FALSE;
+  } else {
+    reconfigure = GST_PAD_NEEDS_RECONFIGURE (pad);
+    if (reconfigure) {
+      GST_DEBUG_OBJECT (pad, "remove RECONFIGURE flag");
+      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
+    }
   }
   GST_OBJECT_UNLOCK (pad);
 
@@ -2479,7 +2507,6 @@
 {
   GstCaps *mycaps;
   GstCaps *caps;
-  GstCaps *peercaps;
   GstPad *peer;
 
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
@@ -2495,11 +2522,9 @@
   GST_OBJECT_UNLOCK (pad);
   mycaps = gst_pad_query_caps (pad, NULL);
 
-  peercaps = gst_pad_query_caps (peer, NULL);
+  caps = gst_pad_query_caps (peer, mycaps);
   gst_object_unref (peer);
 
-  caps = gst_caps_intersect (mycaps, peercaps);
-  gst_caps_unref (peercaps);
   gst_caps_unref (mycaps);
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "allowed caps %" GST_PTR_FORMAT,
@@ -2805,15 +2830,15 @@
   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);
+  allowed = gst_pad_query_caps (pad, 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");
+    GST_DEBUG_OBJECT (pad, "no compatible caps allowed on the pad");
     result = FALSE;
   }
   gst_query_set_accept_caps_result (query, result);
@@ -3059,6 +3084,9 @@
       GST_DEBUG_OBJECT (pad, "asked to pass item");
       data->pass = TRUE;
       break;
+    case GST_PAD_PROBE_OK:
+      GST_DEBUG_OBJECT (pad, "probe returned OK");
+      break;
     default:
       GST_DEBUG_OBJECT (pad, "probe returned %d", ret);
       break;
@@ -3268,6 +3296,12 @@
    * that pushing the EOS event failed
    */
   gboolean was_eos;
+
+  /* If called for an event this is
+   * the event that would be pushed
+   * next. Don't forward sticky events
+   * that would come after that */
+  GstEvent *event;
 } PushStickyData;
 
 /* should be called with pad LOCK */
@@ -3283,8 +3317,17 @@
     return TRUE;
   }
 
-  data->ret = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
-      GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
+  /* If we're called because of an sticky event, only forward
+   * events that would come before this new event and the
+   * event itself */
+  if (data->event && GST_EVENT_IS_STICKY (data->event) &&
+      GST_EVENT_TYPE (data->event) <= GST_EVENT_SEGMENT &&
+      GST_EVENT_TYPE (data->event) < GST_EVENT_TYPE (event)) {
+    data->ret = GST_FLOW_CUSTOM_SUCCESS_1;
+  } else {
+    data->ret = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
+        GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
+  }
 
   switch (data->ret) {
     case GST_FLOW_OK:
@@ -3299,6 +3342,13 @@
       GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
       data->ret = GST_FLOW_OK;
       break;
+    case GST_FLOW_CUSTOM_SUCCESS_1:
+      /* event was ignored and should be sent later */
+      GST_DEBUG_OBJECT (pad, "event %s was ignored, mark pending",
+          GST_EVENT_TYPE_NAME (event));
+      GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+      data->ret = GST_FLOW_OK;
+      break;
     case GST_FLOW_NOT_LINKED:
       /* not linked is not a problem, we are sticky so the event will be
        * sent later but only for non-EOS events */
@@ -3323,9 +3373,9 @@
 /* check sticky events and push them when needed. should be called
  * with pad LOCK */
 static inline GstFlowReturn
-check_sticky (GstPad * pad)
+check_sticky (GstPad * pad, GstEvent * event)
 {
-  PushStickyData data = { GST_FLOW_OK, FALSE };
+  PushStickyData data = { GST_FLOW_OK, FALSE, event };
 
   if (G_UNLIKELY (GST_PAD_HAS_PENDING_EVENTS (pad))) {
     GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
@@ -3532,7 +3582,7 @@
   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)
+    if (!check_sticky (pad, NULL) == GST_FLOW_OK)
       goto sticky_failed;
   }
 
@@ -3630,6 +3680,19 @@
   if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
     goto wrong_mode;
 
+#ifndef G_DISABLE_ASSERT
+  if (!find_event_by_type (pad, GST_EVENT_STREAM_START, 0)) {
+    g_warning (G_STRLOC
+        ":%s:<%s:%s> Got data flow before stream-start event",
+        G_STRFUNC, GST_DEBUG_PAD_NAME (pad));
+  }
+  if (!find_event_by_type (pad, GST_EVENT_SEGMENT, 0)) {
+    g_warning (G_STRLOC
+        ":%s:<%s:%s> Got data flow before segment event",
+        G_STRFUNC, GST_DEBUG_PAD_NAME (pad));
+  }
+#endif
+
   PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_BLOCK, data, probe_stopped);
 
   PROBE_PUSH (pad, type, data, probe_stopped);
@@ -3848,14 +3911,27 @@
   if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
     goto wrong_mode;
 
-  if (G_UNLIKELY ((ret = check_sticky (pad))) != GST_FLOW_OK)
+#ifndef G_DISABLE_ASSERT
+  if (!find_event_by_type (pad, GST_EVENT_STREAM_START, 0)) {
+    g_warning (G_STRLOC
+        ":%s:<%s:%s> Got data flow before stream-start event",
+        G_STRFUNC, GST_DEBUG_PAD_NAME (pad));
+  }
+  if (!find_event_by_type (pad, GST_EVENT_SEGMENT, 0)) {
+    g_warning (G_STRLOC
+        ":%s:<%s:%s> Got data flow before segment event",
+        G_STRFUNC, GST_DEBUG_PAD_NAME (pad));
+  }
+#endif
+
+  if (G_UNLIKELY ((ret = check_sticky (pad, NULL))) != GST_FLOW_OK)
     goto events_error;
 
   /* do block probes */
   PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_BLOCK, data, probe_stopped);
 
   /* recheck sticky events because the probe might have cause a relink */
-  if (G_UNLIKELY ((ret = check_sticky (pad))) != GST_FLOW_OK)
+  if (G_UNLIKELY ((ret = check_sticky (pad, NULL))) != GST_FLOW_OK)
     goto events_error;
 
   /* do post-blocking probes */
@@ -4029,7 +4105,7 @@
   if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PULL))
     goto wrong_mode;
 
-  if (G_UNLIKELY ((ret = check_sticky (pad))) != GST_FLOW_OK)
+  if (G_UNLIKELY ((ret = check_sticky (pad, NULL))) != GST_FLOW_OK)
     goto events_error;
 
   res_buf = *buffer;
@@ -4041,7 +4117,7 @@
       res_buf, offset, size, probe_stopped);
 
   /* recheck sticky events because the probe might have cause a relink */
-  if (G_UNLIKELY ((ret = check_sticky (pad))) != GST_FLOW_OK)
+  if (G_UNLIKELY ((ret = check_sticky (pad, NULL))) != GST_FLOW_OK)
     goto events_error;
 
   ACQUIRE_PARENT (pad, parent, no_parent);
@@ -4375,16 +4451,30 @@
 }
 
 /* must be called with pad object lock */
-static gboolean
-gst_pad_store_sticky_event (GstPad * pad, GstEvent * event)
+static GstFlowReturn
+store_sticky_event (GstPad * pad, GstEvent * event)
 {
   guint i, len;
   GstEventType type;
   GArray *events;
   gboolean res = FALSE;
   const gchar *name = NULL;
+  gboolean insert = TRUE;
 
   type = GST_EVENT_TYPE (event);
+
+  /* Store all sticky events except SEGMENT/SEGMENT when we're flushing,
+   * otherwise they can be dropped and nothing would ever resend them.
+   * Only do that for activated pads though, everything else is a bug!
+   */
+  if (G_UNLIKELY (GST_PAD_MODE (pad) == GST_PAD_MODE_NONE
+          || (GST_PAD_IS_FLUSHING (pad) && (type == GST_EVENT_SEGMENT
+                  || type == GST_EVENT_EOS))))
+    goto flushed;
+
+  if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+    goto eos;
+
   if (type & GST_EVENT_TYPE_STICKY_MULTI)
     name = gst_structure_get_name (gst_event_get_structure (event));
 
@@ -4405,14 +4495,30 @@
       /* overwrite */
       if ((res = gst_event_replace (&ev->event, event)))
         ev->received = FALSE;
+
+      insert = FALSE;
+      break;
+    }
+
+    if (type < GST_EVENT_TYPE (ev->event) || (type != GST_EVENT_TYPE (ev->event)
+            && GST_EVENT_TYPE (ev->event) == GST_EVENT_EOS)) {
+      /* STREAM_START, CAPS and SEGMENT must be delivered in this order. By
+       * storing the sticky ordered we can check that this is respected. */
+      if (G_UNLIKELY (GST_EVENT_TYPE (ev->event) <= GST_EVENT_SEGMENT
+              || GST_EVENT_TYPE (ev->event) == GST_EVENT_EOS))
+        g_warning (G_STRLOC
+            ":%s:<%s:%s> Sticky event misordering, got '%s' before '%s'",
+            G_STRFUNC, GST_DEBUG_PAD_NAME (pad),
+            gst_event_type_get_name (GST_EVENT_TYPE (ev->event)),
+            gst_event_type_get_name (type));
       break;
     }
   }
-  if (i == len) {
+  if (insert) {
     PadEvent ev;
     ev.event = gst_event_ref (event);
     ev.received = FALSE;
-    g_array_append_val (events, ev);
+    g_array_insert_val (events, i, ev);
     res = TRUE;
   }
 
@@ -4435,7 +4541,62 @@
         break;
     }
   }
-  return res;
+  if (type == GST_EVENT_EOS)
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_EOS);
+
+  return GST_PAD_IS_FLUSHING (pad) ? GST_FLOW_FLUSHING : GST_FLOW_OK;
+
+  /* ERRORS */
+flushed:
+  {
+    GST_DEBUG_OBJECT (pad, "pad is flushing");
+    return GST_FLOW_FLUSHING;
+  }
+eos:
+  {
+    GST_DEBUG_OBJECT (pad, "pad is EOS");
+    return GST_FLOW_EOS;
+  }
+}
+
+/**
+ * gst_pad_store_sticky_event:
+ * @pad: a #GstPad
+ * @event: a #GstEvent
+ *
+ * Store the sticky @event on @pad
+ *
+ * Returns: #GST_FLOW_OK on success, #GST_FLOW_FLUSHING when the pad
+ * was flushing or #GST_FLOW_EOS when the pad was EOS.
+ *
+ * Since: 1.2
+ */
+GstFlowReturn
+gst_pad_store_sticky_event (GstPad * pad, GstEvent * event)
+{
+  GstFlowReturn ret;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
+
+  GST_OBJECT_LOCK (pad);
+  ret = store_sticky_event (pad, event);
+  GST_OBJECT_UNLOCK (pad);
+
+  return ret;
+}
+
+static gboolean
+sticky_changed (GstPad * pad, PadEvent * ev, gpointer user_data)
+{
+  PushStickyData *data = user_data;
+
+  /* Forward all sticky events before our current one that are pending */
+  if (ev->event != data->event
+      && GST_EVENT_TYPE (ev->event) < GST_EVENT_TYPE (data->event))
+    return push_sticky (pad, ev, data);
+
+  return TRUE;
 }
 
 /* should be called with pad LOCK */
@@ -4464,6 +4625,7 @@
       /* Remove sticky EOS events */
       GST_LOG_OBJECT (pad, "Removing pending EOS events");
       remove_event_by_type (pad, GST_EVENT_EOS);
+      remove_event_by_type (pad, GST_EVENT_SEGMENT);
       GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
 
       type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
@@ -4500,6 +4662,18 @@
   /* send probes after modifying the events above */
   PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH, event, probe_stopped);
 
+  /* recheck sticky events because the probe might have cause a relink */
+  if (GST_PAD_HAS_PENDING_EVENTS (pad) && GST_PAD_IS_SRC (pad)
+      && (GST_EVENT_IS_SERIALIZED (event)
+          || GST_EVENT_IS_STICKY (event))) {
+    PushStickyData data = { GST_FLOW_OK, FALSE, event };
+    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+
+    /* Push all sticky events before our current one
+     * that have changed */
+    events_foreach (pad, sticky_changed, &data);
+  }
+
   /* now check the peer pad */
   peerpad = GST_PAD_PEER (pad);
   if (peerpad == NULL)
@@ -4614,26 +4788,22 @@
   serialized = GST_EVENT_IS_SERIALIZED (event);
 
   if (sticky) {
-    /* can't store on flushing pads */
-    if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
-      goto flushed;
-
-    if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
-      goto eos;
-
     /* srcpad sticky events are stored 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)) {
-      GST_DEBUG_OBJECT (pad, "event %s updated", GST_EVENT_TYPE_NAME (event));
+    switch (store_sticky_event (pad, event)) {
+      case GST_FLOW_FLUSHING:
+        goto flushed;
+      case GST_FLOW_EOS:
+        goto eos;
+      default:
+        break;
     }
-    if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
-      GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_EOS);
   }
   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);
+    res = (check_sticky (pad, event) == GST_FLOW_OK);
   }
   if (!sticky) {
     GstFlowReturn ret;
@@ -4751,8 +4921,9 @@
         GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
       }
       /* Remove pending EOS events */
-      GST_LOG_OBJECT (pad, "Removing pending EOS events");
+      GST_LOG_OBJECT (pad, "Removing pending EOS and SEGMENT events");
       remove_event_by_type (pad, GST_EVENT_EOS);
+      remove_event_by_type (pad, GST_EVENT_SEGMENT);
       GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
 
       GST_OBJECT_UNLOCK (pad);
@@ -4796,16 +4967,16 @@
         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;
   }
 
+  /* 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);
+
   if (G_UNLIKELY ((eventfunc = GST_PAD_EVENTFUNC (pad)) == NULL))
     goto no_function;
 
@@ -4839,21 +5010,16 @@
   if (sticky) {
     if (ret == GST_FLOW_OK) {
       GST_OBJECT_LOCK (pad);
-      /* can't store on flushing pads */
-      if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
-        goto flushing;
-
-      if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
-        goto eos;
-
       /* after the event function accepted the event, we can store the sticky
        * event on the pad */
-      if (gst_pad_store_sticky_event (pad, event)) {
-        GST_DEBUG_OBJECT (pad, "event %s updated", GST_EVENT_TYPE_NAME (event));
+      switch (store_sticky_event (pad, event)) {
+        case GST_FLOW_FLUSHING:
+          goto flushing;
+        case GST_FLOW_EOS:
+          goto eos;
+        default:
+          break;
       }
-      if (event_type == GST_EVENT_EOS)
-        GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_EOS);
-
       GST_OBJECT_UNLOCK (pad);
     }
     gst_event_unref (event);
@@ -5074,13 +5240,15 @@
 foreach_dispatch_function (GstPad * pad, PadEvent * ev, gpointer user_data)
 {
   ForeachDispatch *data = user_data;
-  gboolean ret;
+  gboolean ret = TRUE;
 
-  GST_OBJECT_UNLOCK (pad);
+  if (ev->event) {
+    GST_OBJECT_UNLOCK (pad);
 
-  ret = data->func (pad, &ev->event, data->user_data);
+    ret = data->func (pad, &ev->event, data->user_data);
 
-  GST_OBJECT_LOCK (pad);
+    GST_OBJECT_LOCK (pad);
+  }
 
   return ret;
 }
diff --git a/gst/gstpad.h b/gst/gstpad.h
index 0170ab4..13d4571 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -587,8 +587,8 @@
  * 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
+ * @event can be replaced by assigning a new reference to it.
+ * This function is responsible for unreffing the old event when
  * removing or modifying.
  *
  * Returns: %TRUE if the iteration should continue
@@ -880,6 +880,7 @@
 
 GstPadTemplate*		gst_pad_get_pad_template		(GstPad *pad);
 
+GstFlowReturn           gst_pad_store_sticky_event              (GstPad *pad, GstEvent *event);
 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);
diff --git a/gst/gstpadtemplate.c b/gst/gstpadtemplate.c
index a2dd97c..c7c4914 100644
--- a/gst/gstpadtemplate.c
+++ b/gst/gstpadtemplate.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstpadtemplate.h b/gst/gstpadtemplate.h
index 90f9b25..2700e9b 100644
--- a/gst/gstpadtemplate.h
+++ b/gst/gstpadtemplate.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstparamspecs.c b/gst/gstparamspecs.c
index ba16fcd..0777c6a 100644
--- a/gst/gstparamspecs.c
+++ b/gst/gstparamspecs.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstparamspec
diff --git a/gst/gstparamspecs.h b/gst/gstparamspecs.h
index e7e5fd5..64377dc 100644
--- a/gst/gstparamspecs.h
+++ b/gst/gstparamspecs.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PARAMSPECS_H__
diff --git a/gst/gstparse.c b/gst/gstparse.c
index 75662d0..faac9e9 100644
--- a/gst/gstparse.c
+++ b/gst/gstparse.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstparse.h b/gst/gstparse.h
index 630c3ce..09013d9 100644
--- a/gst/gstparse.h
+++ b/gst/gstparse.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PARSE_H__
diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c
index 16d2606..51226a4 100644
--- a/gst/gstpipeline.c
+++ b/gst/gstpipeline.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstpipeline.h b/gst/gstpipeline.h
index 43563cb..0dae4c7 100644
--- a/gst/gstpipeline.h
+++ b/gst/gstpipeline.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index 55868a6..d6a9b76 100644
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstplugin.h b/gst/gstplugin.h
index b78cf1f..66ede12 100644
--- a/gst/gstplugin.h
+++ b/gst/gstplugin.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -260,7 +260,7 @@
 GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = {	\
   major,						\
   minor,						\
- #name,						        \
+  G_STRINGIFY(name),                                    \
   (gchar *) description,				\
   init,							\
   version,						\
diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c
index 1fda31c..6dd5e56 100644
--- a/gst/gstpluginfeature.c
+++ b/gst/gstpluginfeature.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -200,6 +200,28 @@
 }
 
 /**
+ * gst_plugin_feature_get_plugin_name:
+ * @feature: a feature
+ *
+ * Get the name of the plugin that provides this feature.
+ *
+ * Returns: the name of the plugin that provides this feature, or %NULL if
+ *     the feature is not associated with a plugin.
+ *
+ * Since: 1.2.0
+ */
+const gchar *
+gst_plugin_feature_get_plugin_name (GstPluginFeature * feature)
+{
+  g_return_val_if_fail (GST_IS_PLUGIN_FEATURE (feature), NULL);
+
+  if (feature->plugin == NULL)
+    return NULL;
+
+  return gst_plugin_get_name (feature->plugin);
+}
+
+/**
  * gst_plugin_feature_list_free:
  * @list: (transfer full) (element-type Gst.PluginFeature): list
  *     of #GstPluginFeature
@@ -360,7 +382,7 @@
  * Returns: negative value if the rank of p1 > the rank of p2 or the ranks are
  * equal but the name of p1 comes before the name of p2; zero if the rank
  * and names are equal; positive value if the rank of p1 < the rank of p2 or the
- * ranks are equal but the name of p2 comes after the name of p1
+ * ranks are equal but the name of p2 comes before the name of p1
  */
 gint
 gst_plugin_feature_rank_compare_func (gconstpointer p1, gconstpointer p2)
@@ -375,7 +397,7 @@
   if (diff != 0)
     return diff;
 
-  diff = strcmp (GST_OBJECT_NAME (f2), GST_OBJECT_NAME (f1));
+  diff = strcmp (GST_OBJECT_NAME (f1), GST_OBJECT_NAME (f2));
 
   return diff;
 }
diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h
index 69ba44d..ca9f0d3 100644
--- a/gst/gstpluginfeature.h
+++ b/gst/gstpluginfeature.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -113,6 +113,7 @@
 guint           gst_plugin_feature_get_rank             (GstPluginFeature *feature);
 
 GstPlugin     * gst_plugin_feature_get_plugin           (GstPluginFeature *feature);
+const gchar   * gst_plugin_feature_get_plugin_name      (GstPluginFeature *feature);
 
 void            gst_plugin_feature_list_free            (GList *list);
 GList          *gst_plugin_feature_list_copy            (GList *list) G_GNUC_MALLOC;
diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
index 4109192..3a98943 100644
--- a/gst/gstpluginloader.c
+++ b/gst/gstpluginloader.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/gstpluginloader.h b/gst/gstpluginloader.h
index 448b034..53ac6fb 100644
--- a/gst/gstpluginloader.h
+++ b/gst/gstpluginloader.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef __GST_PLUGINLOADER_H__
 #define __GST_PLUGINLOADER_H__
diff --git a/gst/gstpoll.c b/gst/gstpoll.c
index d790b31..366f464 100644
--- a/gst/gstpoll.c
+++ b/gst/gstpoll.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstpoll
diff --git a/gst/gstpoll.h b/gst/gstpoll.h
index b066276..8bf64fd 100644
--- a/gst/gstpoll.h
+++ b/gst/gstpoll.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_POLL_H__
diff --git a/gst/gstpreset.c b/gst/gstpreset.c
index 68a657c..6a0b181 100644
--- a/gst/gstpreset.c
+++ b/gst/gstpreset.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstpreset
diff --git a/gst/gstpreset.h b/gst/gstpreset.h
index 30973f3..8e3ea2a 100644
--- a/gst/gstpreset.h
+++ b/gst/gstpreset.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PRESET_H__
diff --git a/gst/gstquark.c b/gst/gstquark.c
index 6384bfd..6343726 100644
--- a/gst/gstquark.c
+++ b/gst/gstquark.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gst_private.h"
@@ -66,7 +66,8 @@
   "GstMessageResetTime",
   "GstMessageToc", "GstEventTocGlobal", "GstEventTocCurrent",
   "GstEventSegmentDone",
-  "GstEventStreamStart", "stream-id"
+  "GstEventStreamStart", "stream-id", "GstEventContext", "GstQueryContext",
+  "GstMessageNeedContext", "GstMessageHaveContext", "context", "context-types"
 };
 
 GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquark.h b/gst/gstquark.h
index f03d2fd..1abc2ee 100644
--- a/gst/gstquark.h
+++ b/gst/gstquark.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_QUARK_H__
@@ -188,7 +188,13 @@
   GST_QUARK_EVENT_SEGMENT_DONE = 159,
   GST_QUARK_EVENT_STREAM_START = 160,
   GST_QUARK_STREAM_ID = 161,
-  GST_QUARK_MAX = 162
+  GST_QUARK_EVENT_CONTEXT = 162,
+  GST_QUARK_QUERY_CONTEXT = 163,
+  GST_QUARK_MESSAGE_NEED_CONTEXT = 164,
+  GST_QUARK_MESSAGE_HAVE_CONTEXT = 165,
+  GST_QUARK_CONTEXT = 166,
+  GST_QUARK_CONTEXT_TYPES = 167,
+  GST_QUARK_MAX = 168
 } GstQuarkId;
 
 extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquery.c b/gst/gstquery.c
index 25a4f38..d5f2962 100644
--- a/gst/gstquery.c
+++ b/gst/gstquery.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -110,6 +110,7 @@
   {GST_QUERY_ACCEPT_CAPS, "accept-caps", 0},
   {GST_QUERY_CAPS, "caps", 0},
   {GST_QUERY_DRAIN, "drain", 0},
+  {GST_QUERY_CONTEXT, "context", 0},
 
   {0, NULL, 0}
 };
@@ -1623,6 +1624,31 @@
   g_array_index (array, AllocationPool, index) = ap;
 }
 
+/**
+ * gst_query_remove_nth_allocation_pool:
+ * @query: a GST_QUERY_ALLOCATION type query #GstQuery
+ * @index: position in the allocation pool array to remove
+ *
+ * Remove the allocation pool at @index of the allocation pool array.
+ */
+void
+gst_query_remove_nth_allocation_pool (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 (POOL), sizeof (AllocationPool),
+      (GDestroyNotify) allocation_pool_free);
+  g_return_if_fail (index < array->len);
+
+  g_array_remove_index (array, index);
+}
+
 typedef struct
 {
   GType api;
@@ -1847,7 +1873,9 @@
  * allocator params array of the query's structure.
  *
  * If no memory allocator is specified, the downstream element can handle
- * the default memory allocator.
+ * the default memory allocator. The first memory allocator in the query
+ * should be generic and allow mapping to system memory, all following
+ * allocators should be ordered by preference with the preferred one first.
  *
  * Returns: the allocator array size as a #guint.
  */
@@ -1870,7 +1898,7 @@
  * gst_query_parse_nth_allocation_param:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @index: position in the allocator array to read
- * @allocator: (out) (transfer none) (allow-none): variable to hold the result
+ * @allocator: (out) (transfer full) (allow-none): variable to hold the result
  * @params: (out) (allow-none): parameters for the allocator
  *
  * Parse an available query and get the alloctor and its params
@@ -1939,6 +1967,31 @@
 }
 
 /**
+ * gst_query_remove_nth_allocation_param:
+ * @query: a GST_QUERY_ALLOCATION type query #GstQuery
+ * @index: position in the allocation param array to remove
+ *
+ * Remove the allocation param at @index of the allocation param array.
+ */
+void
+gst_query_remove_nth_allocation_param (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 (ALLOCATOR), sizeof (AllocationParam),
+      (GDestroyNotify) allocation_param_free);
+  g_return_if_fail (index < array->len);
+
+  g_array_remove_index (array, index);
+}
+
+/**
  * gst_query_new_scheduling:
  *
  * Constructs a new query object for querying the scheduling properties.
@@ -2378,3 +2431,152 @@
 
   return query;
 }
+
+/**
+ * gst_query_new_context:
+ *
+ * Constructs a new query object for querying the pipeline-local context.
+ *
+ * Free-function: gst_query_unref
+ *
+ * Returns: (transfer full): a new #GstQuery
+ */
+GstQuery *
+gst_query_new_context (void)
+{
+  GstQuery *query;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id_empty (GST_QUARK (QUERY_CONTEXT));
+  query = gst_query_new_custom (GST_QUERY_CONTEXT, structure);
+
+  return query;
+}
+
+/**
+ * gst_query_set_context:
+ * @query: a #GstQuery with query type GST_QUERY_CONTEXT
+ * @context: the requested #GstContext
+ *
+ * Answer a context query by setting the requested context.
+ */
+void
+gst_query_set_context (GstQuery * query, GstContext * context)
+{
+  GstStructure *s;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CONTEXT);
+
+  s = GST_QUERY_STRUCTURE (query);
+
+  gst_structure_id_set (s,
+      GST_QUARK (CONTEXT), GST_TYPE_CONTEXT, context, NULL);
+}
+
+/**
+ * gst_query_parse_context:
+ * @query: The query to parse
+ * @context: (out): A pointer to store the #GstContext
+ *
+ * Get the context from the context @query. The context remains valid as long as
+ * @query remains valid.
+ */
+void
+gst_query_parse_context (GstQuery * query, GstContext ** context)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CONTEXT);
+  g_return_if_fail (context != NULL);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  *context = g_value_get_boxed (gst_structure_id_get_value (structure,
+          GST_QUARK (CONTEXT)));
+}
+
+static void
+free_array_string (gpointer ptr)
+{
+  gchar *str = *(gchar **) ptr;
+  g_free (str);
+}
+
+/**
+ * gst_query_add_context_type:
+ * @query: a GST_QUERY_NEED_CONTEXT type query
+ * @context_type: a context type
+ *
+ * Add a new context type to @query.
+ */
+void
+gst_query_add_context_type (GstQuery * query, const gchar * context_type)
+{
+  GstStructure *structure;
+  GArray *array;
+  gchar *copy;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CONTEXT);
+  g_return_if_fail (gst_query_is_writable (query));
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (CONTEXT_TYPES),
+      sizeof (gchar *), free_array_string);
+
+  copy = g_strdup (context_type);
+  g_array_append_val (array, copy);
+}
+
+/**
+ * gst_query_get_n_context_types:
+ * @query: a GST_QUERY_NEED_CONTEXT type query
+ *
+ * Retrieve the number of values currently stored in the
+ * context-types array of the query's structure.
+ *
+ * Returns: the context-types array size as a #guint.
+ */
+guint
+gst_query_get_n_context_types (GstQuery * query)
+{
+  GstStructure *structure;
+  GArray *array;
+
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CONTEXT, 0);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (CONTEXT_TYPES),
+      sizeof (gchar *), free_array_string);
+
+  return array->len;
+}
+
+/**
+ * gst_query_parse_nth_context_type:
+ * @query: a GST_QUERY_NEED_CONTEXT type query
+ * @context_type: (out) (allow-none): the context type, or NULL
+ *
+ * Parse a context type from an existing GST_QUERY_NEED_CONTEXT query
+ * from @index.
+ *
+ * Returns: a #gboolean indicating if the parsing succeeded.
+ */
+gboolean
+gst_query_parse_nth_context_type (GstQuery * query, guint index,
+    const gchar ** context_type)
+{
+  GstStructure *structure;
+  GArray *array;
+
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CONTEXT, FALSE);
+
+  structure = GST_QUERY_STRUCTURE (query);
+
+  array = ensure_array (structure, GST_QUARK (CONTEXT_TYPES),
+      sizeof (gchar *), free_array_string);
+  g_return_val_if_fail (index < array->len, FALSE);
+
+  if (context_type)
+    *context_type = g_array_index (array, gchar *, index);
+
+  return TRUE;
+}
diff --git a/gst/gstquery.h b/gst/gstquery.h
index 47fec23..57a9c06 100644
--- a/gst/gstquery.h
+++ b/gst/gstquery.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -35,6 +35,7 @@
 #include <gst/gstpad.h>
 #include <gst/gstallocator.h>
 #include <gst/gsttoc.h>
+#include <gst/gstcontext.h>
 
 G_BEGIN_DECLS
 
@@ -101,6 +102,7 @@
  * @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_CONTEXT: query the pipeline-local context from downstream
  *
  * Standard predefined Query types
  */
@@ -124,7 +126,8 @@
   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_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_QUERY_CONTEXT      = GST_QUERY_MAKE_TYPE (190, FLAG(DOWNSTREAM))
 } GstQueryType;
 #undef FLAG
 
@@ -411,6 +414,7 @@
                                                       GstBufferPool *pool,
                                                       guint size, guint min_buffers,
                                                       guint max_buffers);
+void            gst_query_remove_nth_allocation_pool (GstQuery *query, guint index);
 
 /* allocators */
 void            gst_query_add_allocation_param       (GstQuery *query, GstAllocator *allocator,
@@ -422,6 +426,7 @@
 void            gst_query_set_nth_allocation_param   (GstQuery *query, guint index,
                                                       GstAllocator *allocator,
                                                       const GstAllocationParams *params);
+void            gst_query_remove_nth_allocation_param (GstQuery *query, guint index);
 
 /* metadata */
 void            gst_query_add_allocation_meta        (GstQuery *query, GType api, const GstStructure *params);
@@ -437,12 +442,14 @@
  * GstSchedulingFlags:
  * @GST_SCHEDULING_FLAG_SEEKABLE: if seeking is possible
  * @GST_SCHEDULING_FLAG_SEQUENTIAL: if sequential access is recommended
+ * @GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED: if bandwidth is limited and buffering possible
  *
  * The different scheduling flags.
  */
 typedef enum {
-  GST_SCHEDULING_FLAG_SEEKABLE      = (1 << 0),
-  GST_SCHEDULING_FLAG_SEQUENTIAL    = (1 << 1)
+  GST_SCHEDULING_FLAG_SEEKABLE          = (1 << 0),
+  GST_SCHEDULING_FLAG_SEQUENTIAL        = (1 << 1),
+  GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED = (1 << 2)
 } GstSchedulingFlags;
 
 GstQuery *      gst_query_new_scheduling          (void) G_GNUC_MALLOC;
@@ -475,6 +482,14 @@
 /* drain query */
 GstQuery *      gst_query_new_drain                (void) G_GNUC_MALLOC;
 
+/* context query */
+GstQuery *      gst_query_new_context              (void) G_GNUC_MALLOC;
+void            gst_query_add_context_type         (GstQuery * query, const gchar * context_type);
+guint           gst_query_get_n_context_types      (GstQuery * query);
+gboolean        gst_query_parse_nth_context_type   (GstQuery * query, guint i, const gchar ** context_type);
+void            gst_query_set_context              (GstQuery *query, GstContext *context);
+void            gst_query_parse_context            (GstQuery *query, GstContext **context);
+
 G_END_DECLS
 
 #endif /* __GST_QUERY_H__ */
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index a4ec279..c03a1ef 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstregistry.h b/gst/gstregistry.h
index f17fe7f..d0a665b 100644
--- a/gst/gstregistry.h
+++ b/gst/gstregistry.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c
index fe1710a..837e3b4 100644
--- a/gst/gstregistrybinary.c
+++ b/gst/gstregistrybinary.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME:
diff --git a/gst/gstregistrybinary.h b/gst/gstregistrybinary.h
index 7120363..f1102c7 100644
--- a/gst/gstregistrybinary.h
+++ b/gst/gstregistrybinary.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* SUGGESTIONS AND TODO :
diff --git a/gst/gstregistrychunks.c b/gst/gstregistrychunks.c
index 683738d..571f6be 100644
--- a/gst/gstregistrychunks.c
+++ b/gst/gstregistrychunks.c
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -60,7 +60,7 @@
 #define unpack_element(inptr, outptr, element, endptr, error_label) G_STMT_START{ \
   if (inptr + sizeof(element) > endptr) { \
     GST_ERROR ("Failed reading element " G_STRINGIFY (element)  \
-        ". Have %d bytes need %" G_GSSIZE_FORMAT, \
+        ". Have %d bytes need %" G_GSIZE_FORMAT, \
         (int) (endptr - inptr), sizeof(element)); \
     goto error_label; \
   } \
diff --git a/gst/gstregistrychunks.h b/gst/gstregistrychunks.h
index fdbac5e..3e6e923 100644
--- a/gst/gstregistrychunks.h
+++ b/gst/gstregistrychunks.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef __GST_REGISTRYCHUNKS_H__
 #define __GST_REGISTRYCHUNKS_H__
diff --git a/gst/gstsample.c b/gst/gstsample.c
index 947921e..f6f0ead 100644
--- a/gst/gstsample.c
+++ b/gst/gstsample.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gstsample.h b/gst/gstsample.h
index 97a3843..379690c 100644
--- a/gst/gstsample.h
+++ b/gst/gstsample.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstsegment.c b/gst/gstsegment.c
index 8317aa6..c663421 100644
--- a/gst/gstsegment.c
+++ b/gst/gstsegment.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gst_private.h"
@@ -300,6 +300,8 @@
   /* we can't have stop before start */
   if (stop != -1) {
     if (start > stop) {
+      GST_WARNING ("segment update failed: start(%" G_GUINT64_FORMAT
+          ") > stop(%" G_GUINT64_FORMAT ")", start, stop);
       g_return_val_if_fail (start <= stop, FALSE);
       return FALSE;
     }
@@ -314,6 +316,7 @@
 
     /* remember the elapsed time */
     base = gst_segment_to_running_time (segment, format, position);
+    GST_DEBUG ("updated segment.base: %" G_GUINT64_FORMAT, base);
   }
 
   if (update_start && rate > 0.0) {
@@ -364,6 +367,8 @@
   segment->time = start;
   segment->position = position;
 
+  GST_INFO ("segment updated: %" GST_SEGMENT_FORMAT, segment);
+
   return TRUE;
 }
 
@@ -472,8 +477,10 @@
   guint64 start, stop;
   gdouble abs_rate;
 
-  if (G_UNLIKELY (position == -1))
+  if (G_UNLIKELY (position == -1)) {
+    GST_DEBUG ("invalid position (-1)");
     return -1;
+  }
 
   g_return_val_if_fail (segment != NULL, -1);
   g_return_val_if_fail (segment->format == format, -1);
@@ -484,27 +491,38 @@
     start += segment->offset;
 
   /* before the segment boundary */
-  if (G_UNLIKELY (position < start))
+  if (G_UNLIKELY (position < start)) {
+    GST_DEBUG ("position(%" G_GUINT64_FORMAT ") < start(%" G_GUINT64_FORMAT
+        ")", position, start);
     return -1;
+  }
 
   stop = segment->stop;
 
   if (G_LIKELY (segment->rate > 0.0)) {
-    /* outside of the segment boundary stop */
-    if (G_UNLIKELY (stop != -1 && position > stop))
+    /* after of the segment boundary */
+    if (G_UNLIKELY (stop != -1 && position > stop)) {
+      GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
+          ")", position, stop);
       return -1;
+    }
 
     /* bring to uncorrected position in segment */
     result = position - start;
   } else {
     /* cannot continue if no stop position set or outside of
      * the segment. */
-    if (G_UNLIKELY (stop == -1))
+    if (G_UNLIKELY (stop == -1)) {
+      GST_DEBUG ("invalid stop (-1)");
       return -1;
+    }
 
     stop -= segment->offset;
-    if (G_UNLIKELY (position > stop))
+    if (G_UNLIKELY (position > stop)) {
+      GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
+          ")", position, stop);
       return -1;
+    }
 
     /* bring to uncorrected position in segment */
     result = stop - position;
diff --git a/gst/gstsegment.h b/gst/gstsegment.h
index c364ce6..65f8a62 100644
--- a/gst/gstsegment.h
+++ b/gst/gstsegment.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gststructure.c b/gst/gststructure.c
index 1564257..f164d16 100644
--- a/gst/gststructure.c
+++ b/gst/gststructure.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -326,7 +326,7 @@
  *
  * Free-function: gst_structure_free
  *
- * Returns: (transfer none): a new #GstStructure.
+ * Returns: (transfer full): a new #GstStructure.
  */
 GstStructure *
 gst_structure_copy (const GstStructure * structure)
@@ -1781,7 +1781,6 @@
 
   g_return_val_if_fail (s != NULL, FALSE);
 
-  g_string_append (s, g_quark_to_string (structure->name));
   len = GST_STRUCTURE_FIELDS (structure)->len;
   for (i = 0; i < len; i++) {
     char *t;
@@ -1839,6 +1838,7 @@
   /* we estimate a minimum size based on the number of fields in order to
    * avoid unnecessary reallocs within GString */
   s = g_string_sized_new (STRUCTURE_ESTIMATED_STRING_LEN (structure));
+  g_string_append (s, g_quark_to_string (structure->name));
   priv_gst_structure_append_to_gstring (structure, s);
   return g_string_free (s, FALSE);
 }
@@ -2236,10 +2236,102 @@
   return ret;
 }
 
+gboolean
+priv_gst_structure_parse_name (gchar * str, gchar ** start, gchar ** end,
+    gchar ** next)
+{
+  char *w;
+  char *r;
+
+  r = str;
+
+  /* skip spaces (FIXME: _isspace treats tabs and newlines as space!) */
+  while (*r && (g_ascii_isspace (*r) || (r[0] == '\\'
+              && g_ascii_isspace (r[1]))))
+    r++;
+
+  *start = r;
+
+  if (G_UNLIKELY (!gst_structure_parse_string (r, &w, &r, TRUE))) {
+    GST_WARNING ("Failed to parse structure string '%s'", str);
+    return FALSE;
+  }
+
+  *end = w;
+  *next = r;
+
+  return TRUE;
+}
+
+gboolean
+priv_gst_structure_parse_fields (gchar * str, gchar ** end,
+    GstStructure * structure)
+{
+  gchar *r;
+  GstStructureField field;
+
+  r = str;
+
+  do {
+    while (*r && (g_ascii_isspace (*r) || (r[0] == '\\'
+                && g_ascii_isspace (r[1]))))
+      r++;
+    if (*r == ';') {
+      /* end of structure, get the next char and finish */
+      r++;
+      break;
+    }
+    if (*r == '\0') {
+      /* accept \0 as end delimiter */
+      break;
+    }
+    if (G_UNLIKELY (*r != ',')) {
+      GST_WARNING ("Failed to find delimiter, r=%s", r);
+      return FALSE;
+    }
+    r++;
+    while (*r && (g_ascii_isspace (*r) || (r[0] == '\\'
+                && g_ascii_isspace (r[1]))))
+      r++;
+
+    memset (&field, 0, sizeof (field));
+    if (G_UNLIKELY (!gst_structure_parse_field (r, &r, &field))) {
+      GST_WARNING ("Failed to parse field, r=%s", r);
+      return FALSE;
+    }
+    gst_structure_set_field (structure, &field);
+  } while (TRUE);
+
+  *end = r;
+
+  return TRUE;
+}
+
+/**
+ * gst_structure_new_from_string:
+ * @string: a string representation of a #GstStructure
+ *
+ * Creates a #GstStructure from a string representation.
+ * If end is not NULL, a pointer to the place inside the given string
+ * where parsing ended will be returned.
+ *
+ * Free-function: gst_structure_free
+ *
+ * Returns: (transfer full): a new #GstStructure or NULL when the string could
+ *     not be parsed. Free with gst_structure_free() after use.
+ *
+ * Since: 1.2
+ */
+GstStructure *
+gst_structure_new_from_string (const gchar * string)
+{
+  return gst_structure_from_string (string, NULL);
+}
+
 /**
  * gst_structure_from_string:
  * @string: a string representation of a #GstStructure.
- * @end: (out) (allow-none) (transfer none): pointer to store the end of the string in.
+ * @end: (out) (allow-none) (transfer none) (skip): 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
@@ -2259,23 +2351,14 @@
   char *r;
   char save;
   GstStructure *structure = NULL;
-  GstStructureField field;
 
   g_return_val_if_fail (string != NULL, NULL);
 
   copy = g_strdup (string);
   r = copy;
 
-  /* skip spaces (FIXME: _isspace treats tabs and newlines as space!) */
-  while (*r && (g_ascii_isspace (*r) || (r[0] == '\\'
-              && g_ascii_isspace (r[1]))))
-    r++;
-
-  name = r;
-  if (G_UNLIKELY (!gst_structure_parse_string (r, &w, &r, TRUE))) {
-    GST_WARNING ("Failed to parse structure string '%s'", string);
+  if (!priv_gst_structure_parse_name (r, &name, &w, &r))
     goto error;
-  }
 
   save = *w;
   *w = '\0';
@@ -2285,35 +2368,8 @@
   if (G_UNLIKELY (structure == NULL))
     goto error;
 
-  do {
-    while (*r && (g_ascii_isspace (*r) || (r[0] == '\\'
-                && g_ascii_isspace (r[1]))))
-      r++;
-    if (*r == ';') {
-      /* end of structure, get the next char and finish */
-      r++;
-      break;
-    }
-    if (*r == '\0') {
-      /* accept \0 as end delimiter */
-      break;
-    }
-    if (G_UNLIKELY (*r != ',')) {
-      GST_WARNING ("Failed to find delimiter, r=%s", r);
-      goto error;
-    }
-    r++;
-    while (*r && (g_ascii_isspace (*r) || (r[0] == '\\'
-                && g_ascii_isspace (r[1]))))
-      r++;
-
-    memset (&field, 0, sizeof (field));
-    if (G_UNLIKELY (!gst_structure_parse_field (r, &r, &field))) {
-      GST_WARNING ("Failed to parse field, r=%s", r);
-      goto error;
-    }
-    gst_structure_set_field (structure, &field);
-  } while (TRUE);
+  if (!priv_gst_structure_parse_fields (r, &r, structure))
+    goto error;
 
   if (end)
     *end = (char *) string + (r - copy);
@@ -2687,8 +2743,7 @@
   GValue v = { 0 };
 
   if (gst_value_fixate (&v, value)) {
-    gst_structure_id_set_value (s, field_id, &v);
-    g_value_unset (&v);
+    gst_structure_id_take_value (s, field_id, &v);
   }
   return TRUE;
 }
@@ -3023,8 +3078,7 @@
   } else {
     GValue dest_value = { 0 };
     if (gst_value_intersect (&dest_value, val1, val2)) {
-      gst_structure_id_set_value (idata->dest, id, &dest_value);
-      g_value_unset (&dest_value);
+      gst_structure_id_take_value (idata->dest, id, &dest_value);
     } else {
       return FALSE;
     }
@@ -3138,27 +3192,18 @@
 }
 
 static gboolean
-gst_caps_structure_has_field (GQuark field_id, const GValue * value,
+gst_caps_structure_is_superset_field (GQuark field_id, const GValue * value,
     gpointer user_data)
 {
   GstStructure *subset = user_data;
-
-  return gst_structure_id_get_value (subset, field_id) != NULL;
-}
-
-static gboolean
-gst_caps_structure_is_subset_field (GQuark field_id, const GValue * value,
-    gpointer user_data)
-{
-  GstStructure *superset = user_data;
   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;
+  if (!(other = gst_structure_id_get_value (subset, field_id)))
+    /* field is missing in the subset => no subset */
+    return FALSE;
 
-  comparison = gst_value_compare (other, value);
+  comparison = gst_value_compare (value, other);
 
   /* equal values are subset */
   if (comparison == GST_VALUE_EQUAL)
@@ -3168,7 +3213,7 @@
   if (comparison != GST_VALUE_UNORDERED)
     return FALSE;
 
-  return gst_value_is_subset (value, other);
+  return gst_value_is_subset (other, value);
 }
 
 /**
@@ -3190,13 +3235,8 @@
       (gst_structure_n_fields (superset) > gst_structure_n_fields (subset)))
     return FALSE;
 
-  /* The subset must have all fields that are in superset */
-  if (!gst_structure_foreach ((GstStructure *) superset,
-          gst_caps_structure_has_field, (gpointer) subset))
-    return FALSE;
-
-  return gst_structure_foreach ((GstStructure *) subset,
-      gst_caps_structure_is_subset_field, (gpointer) superset);
+  return gst_structure_foreach ((GstStructure *) superset,
+      gst_caps_structure_is_superset_field, (gpointer) subset);
 }
 
 
diff --git a/gst/gststructure.h b/gst/gststructure.h
index 90c4b59..f7cc61b 100644
--- a/gst/gststructure.h
+++ b/gst/gststructure.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_STRUCTURE_H__
@@ -51,8 +51,8 @@
  * the foreach operation should stop with FALSE.
  */
 typedef gboolean (*GstStructureForeachFunc) (GQuark   field_id,
-					     const GValue * value,
-					     gpointer user_data);
+                                             const GValue * value,
+                                             gpointer user_data);
 
 /**
  * GstStructureMapFunc:
@@ -67,8 +67,8 @@
  * the map operation should stop with FALSE.
  */
 typedef gboolean (*GstStructureMapFunc)     (GQuark   field_id,
-					     GValue * value,
-					     gpointer user_data);
+                                             GValue * value,
+                                             gpointer user_data);
 
 /**
  * GstStructure:
@@ -83,176 +83,224 @@
   GQuark name;
 };
 
-GType                   gst_structure_get_type             (void);
+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) G_GNUC_MALLOC;
-GstStructure *          gst_structure_new_id               (GQuark                   name_quark,
-                                                            GQuark                   field_quark,
-                                                            ...) 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);
+GstStructure *        gst_structure_new_empty            (const gchar * name) G_GNUC_MALLOC;
 
-const gchar *		gst_structure_get_name             (const GstStructure      *structure);
-GQuark			gst_structure_get_name_id          (const GstStructure      *structure);
-gboolean                gst_structure_has_name             (const GstStructure      *structure,
-							    const gchar             *name);
-void                    gst_structure_set_name             (GstStructure            *structure,
-							    const gchar             *name);
+GstStructure *        gst_structure_new_id_empty         (GQuark quark) G_GNUC_MALLOC;
 
-void                    gst_structure_id_set_value         (GstStructure            *structure,
-							    GQuark                   field,
-							    const GValue            *value);
-void                    gst_structure_set_value            (GstStructure            *structure,
-							    const gchar             *fieldname,
-							    const GValue            *value);
-void                    gst_structure_id_take_value         (GstStructure            *structure,
-							    GQuark                   field,
-							    GValue                  *value);
-void                    gst_structure_take_value            (GstStructure            *structure,
-							    const gchar             *fieldname,
-							    GValue                  *value);
-void                    gst_structure_set                  (GstStructure            *structure,
-							    const gchar             *fieldname,
-							    ...) G_GNUC_NULL_TERMINATED;
+GstStructure *        gst_structure_new                  (const gchar * name,
+                                                          const gchar * firstfield,
+                                                          ...) G_GNUC_NULL_TERMINATED  G_GNUC_MALLOC;
 
-void                    gst_structure_set_valist           (GstStructure            *structure,
-							    const gchar             *fieldname,
-							    va_list varargs);
+GstStructure *        gst_structure_new_valist           (const gchar * name,
+                                                          const gchar * firstfield,
+                                                          va_list       varargs) G_GNUC_MALLOC;
 
-void                    gst_structure_id_set                (GstStructure            *structure,
-							    GQuark                   fieldname,
-							    ...) G_GNUC_NULL_TERMINATED;
+GstStructure *        gst_structure_new_id               (GQuark name_quark,
+                                                          GQuark field_quark,
+                                                          ...) G_GNUC_MALLOC;
 
-void                    gst_structure_id_set_valist         (GstStructure            *structure,
-							    GQuark                   fieldname,
-							    va_list varargs);
+GstStructure *        gst_structure_new_from_string      (const gchar * string);
 
-gboolean                gst_structure_get_valist           (const GstStructure      *structure,
-                                                            const char              *first_fieldname,
-                                                            va_list                  args);
+GstStructure *        gst_structure_copy                 (const GstStructure  * structure) G_GNUC_MALLOC;
 
-gboolean                gst_structure_get                  (const GstStructure      *structure,
-                                                            const char              *first_fieldname,
-                                                            ...) G_GNUC_NULL_TERMINATED;
+gboolean              gst_structure_set_parent_refcount  (GstStructure        * structure,
+                                                            gint                * refcount);
 
-gboolean                gst_structure_id_get_valist        (const GstStructure      *structure,
-                                                            GQuark                   first_field_id,
-                                                            va_list                  args);
+void                  gst_structure_free                 (GstStructure        * structure);
 
-gboolean                gst_structure_id_get               (const GstStructure      *structure,
-                                                            GQuark                   first_field_id,
-                                                            ...) G_GNUC_NULL_TERMINATED;
+const gchar *         gst_structure_get_name             (const GstStructure  * structure);
 
-const GValue *		gst_structure_id_get_value         (const GstStructure      *structure,
-							    GQuark                   field);
-const GValue *		gst_structure_get_value            (const GstStructure      *structure,
-							    const gchar             *fieldname);
-void                    gst_structure_remove_field         (GstStructure            *structure,
-							    const gchar             *fieldname);
-void                    gst_structure_remove_fields        (GstStructure            *structure,
-							     const gchar            *fieldname,
-							    ...) G_GNUC_NULL_TERMINATED;
-void                    gst_structure_remove_fields_valist (GstStructure             *structure,
-							    const gchar             *fieldname,
-							    va_list                  varargs);
-void                    gst_structure_remove_all_fields    (GstStructure            *structure);
+GQuark                gst_structure_get_name_id          (const GstStructure  * structure);
 
-GType                   gst_structure_get_field_type       (const GstStructure      *structure,
-							    const gchar             *fieldname);
-gboolean                gst_structure_foreach              (const GstStructure      *structure,
-							    GstStructureForeachFunc  func,
-							    gpointer                 user_data);
-gboolean                gst_structure_map_in_place         (GstStructure            *structure,
-							    GstStructureMapFunc      func,
-							    gpointer                 user_data);
-gint                    gst_structure_n_fields             (const GstStructure      *structure);
-const gchar *           gst_structure_nth_field_name       (const GstStructure      *structure, guint index);
-gboolean                gst_structure_id_has_field         (const GstStructure      *structure,
-							    GQuark                   field);
-gboolean                gst_structure_id_has_field_typed   (const GstStructure      *structure,
-							    GQuark                   field,
-							    GType                    type);
-gboolean                gst_structure_has_field            (const GstStructure      *structure,
-							    const gchar             *fieldname);
-gboolean                gst_structure_has_field_typed      (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    GType                    type);
+gboolean              gst_structure_has_name             (const GstStructure  * structure,
+                                                          const gchar         * name);
+
+void                  gst_structure_set_name             (GstStructure        * structure,
+                                                          const gchar         * name);
+
+void                  gst_structure_id_set_value         (GstStructure        * structure,
+                                                          GQuark                field,
+                                                          const GValue        * value);
+
+void                  gst_structure_set_value            (GstStructure        * structure,
+                                                          const gchar         * fieldname,
+                                                          const GValue        * value);
+
+void                  gst_structure_id_take_value        (GstStructure        * structure,
+                                                          GQuark                field,
+                                                          GValue              * value);
+
+void                  gst_structure_take_value           (GstStructure        * structure,
+                                                          const gchar         * fieldname,
+                                                          GValue              * value);
+
+void                  gst_structure_set                  (GstStructure        * structure,
+                                                          const gchar         * fieldname,
+                                                          ...) G_GNUC_NULL_TERMINATED;
+
+void                  gst_structure_set_valist           (GstStructure        * structure,
+                                                          const gchar         * fieldname,
+                                                          va_list varargs);
+
+void                  gst_structure_id_set               (GstStructure        * structure,
+                                                          GQuark                fieldname,
+                                                          ...) G_GNUC_NULL_TERMINATED;
+
+void                  gst_structure_id_set_valist        (GstStructure        * structure,
+                                                          GQuark                fieldname,
+                                                          va_list varargs);
+
+gboolean              gst_structure_get_valist           (const GstStructure  * structure,
+                                                          const char          * first_fieldname,
+                                                          va_list              args);
+
+gboolean              gst_structure_get                  (const GstStructure  * structure,
+                                                          const char          * first_fieldname,
+                                                          ...) G_GNUC_NULL_TERMINATED;
+
+gboolean              gst_structure_id_get_valist        (const GstStructure  * structure,
+                                                          GQuark                first_field_id,
+                                                          va_list               args);
+
+gboolean              gst_structure_id_get               (const GstStructure  * structure,
+                                                          GQuark                first_field_id,
+                                                          ...) G_GNUC_NULL_TERMINATED;
+
+const GValue *        gst_structure_id_get_value         (const GstStructure  * structure,
+                                                          GQuark                field);
+
+const GValue *        gst_structure_get_value            (const GstStructure  * structure,
+                                                          const gchar         * fieldname);
+
+void                  gst_structure_remove_field         (GstStructure        * structure,
+                                                            const gchar         * fieldname);
+
+void                  gst_structure_remove_fields        (GstStructure        * structure,
+                                                          const gchar         * fieldname,
+                                                          ...) G_GNUC_NULL_TERMINATED;
+
+void                  gst_structure_remove_fields_valist (GstStructure        * structure,
+                                                          const gchar         * fieldname,
+                                                          va_list               varargs);
+
+void                  gst_structure_remove_all_fields    (GstStructure        * structure);
+
+GType                 gst_structure_get_field_type       (const GstStructure  * structure,
+                                                          const gchar         * fieldname);
+
+gboolean              gst_structure_foreach              (const GstStructure  * structure,
+                                                          GstStructureForeachFunc   func,
+                                                          gpointer              user_data);
+
+gboolean              gst_structure_map_in_place         (GstStructure        * structure,
+                                                          GstStructureMapFunc   func,
+                                                          gpointer              user_data);
+
+gint                  gst_structure_n_fields             (const GstStructure  * structure);
+
+const gchar *         gst_structure_nth_field_name       (const GstStructure  * structure,
+                                                          guint                 index);
+
+gboolean              gst_structure_id_has_field         (const GstStructure  * structure,
+                                                          GQuark                field);
+
+gboolean              gst_structure_id_has_field_typed   (const GstStructure  * structure,
+                                                          GQuark                field,
+                                                          GType                 type);
+
+gboolean              gst_structure_has_field            (const GstStructure  * structure,
+                                                          const gchar         * fieldname);
+
+gboolean              gst_structure_has_field_typed      (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          GType                 type);
 
 /* utility functions */
-gboolean                gst_structure_get_boolean          (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    gboolean                *value);
-gboolean                gst_structure_get_int              (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    gint                    *value);
-gboolean                gst_structure_get_uint             (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    guint                   *value);
-gboolean                gst_structure_get_double           (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    gdouble                 *value);
-gboolean                gst_structure_get_date             (const GstStructure      *structure,
-							    const gchar             *fieldname,
-                                                            GDate                  **value);
-gboolean                gst_structure_get_date_time        (const GstStructure      *structure,
-							    const gchar             *fieldname,
-                                                            GstDateTime              **value);
-gboolean                gst_structure_get_clock_time       (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    GstClockTime            *value);
-const gchar *		gst_structure_get_string           (const GstStructure      *structure,
-							    const gchar             *fieldname);
-gboolean                gst_structure_get_enum             (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    GType                    enumtype,
-							    gint                    *value);
-gboolean                gst_structure_get_fraction         (const GstStructure      *structure,
-							    const gchar             *fieldname,
-							    gint *value_numerator,
-							    gint *value_denominator);
+gboolean              gst_structure_get_boolean          (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          gboolean            * value);
 
-gchar *                 gst_structure_to_string            (const GstStructure      *structure) G_GNUC_MALLOC;
-GstStructure *          gst_structure_from_string          (const gchar             *string,
-							    gchar                  **end) G_GNUC_MALLOC;
+gboolean              gst_structure_get_int              (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          gint                * value);
 
-gboolean                 gst_structure_fixate_field_nearest_int    (GstStructure *structure,
-									 const char   *field_name,
-									 int           target);
-gboolean                 gst_structure_fixate_field_nearest_double (GstStructure *structure,
-									 const char   *field_name,
-									 double        target);
+gboolean              gst_structure_get_uint             (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          guint               * value);
 
-gboolean                 gst_structure_fixate_field_boolean (GstStructure *structure,
-									 const char   *field_name,
-									 gboolean        target);
-gboolean                 gst_structure_fixate_field_string (GstStructure *structure,
-									 const char   *field_name,
-									 const gchar  *target);
-gboolean                 gst_structure_fixate_field_nearest_fraction (GstStructure *structure,
-									 const char   *field_name,
-									 const gint target_numerator,
-									 const gint target_denominator);
-gboolean                 gst_structure_fixate_field  (GstStructure *structure,
-						      const char   *field_name);
+gboolean              gst_structure_get_double           (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          gdouble             * value);
 
-gboolean                 gst_structure_is_equal(const GstStructure *structure1,
-						const GstStructure *structure2);
-gboolean                 gst_structure_is_subset(const GstStructure *subset,
-                                                 const GstStructure *superset);
-gboolean                 gst_structure_can_intersect(const GstStructure *struct1,
-						     const GstStructure *struct2);
-GstStructure*            gst_structure_intersect (const GstStructure *struct1,
-                                                  const GstStructure *struct2)  G_GNUC_MALLOC;
-void                     gst_structure_fixate    (GstStructure *structure);
+gboolean              gst_structure_get_date             (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          GDate              ** value);
+
+gboolean              gst_structure_get_date_time        (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          GstDateTime        ** value);
+
+gboolean              gst_structure_get_clock_time       (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          GstClockTime        * value);
+
+const gchar *         gst_structure_get_string           (const GstStructure  * structure,
+                                                          const gchar         * fieldname);
+
+gboolean              gst_structure_get_enum             (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          GType                 enumtype,
+                                                          gint                * value);
+
+gboolean              gst_structure_get_fraction         (const GstStructure  * structure,
+                                                          const gchar         * fieldname,
+                                                          gint                * value_numerator,
+                                                          gint                * value_denominator);
+
+gchar *               gst_structure_to_string    (const GstStructure * structure) G_GNUC_MALLOC;
+
+GstStructure *        gst_structure_from_string  (const gchar * string,
+                                                  gchar      ** end) G_GNUC_MALLOC;
+
+gboolean              gst_structure_fixate_field_nearest_int      (GstStructure * structure,
+                                                                   const char   * field_name,
+                                                                   int            target);
+
+gboolean              gst_structure_fixate_field_nearest_double   (GstStructure * structure,
+                                                                   const char   * field_name,
+                                                                   double         target);
+
+gboolean              gst_structure_fixate_field_boolean          (GstStructure * structure,
+                                                                   const char   * field_name,
+                                                                   gboolean       target);
+
+gboolean              gst_structure_fixate_field_string           (GstStructure * structure,
+                                                                   const char   * field_name,
+                                                                   const gchar  * target);
+
+gboolean              gst_structure_fixate_field_nearest_fraction (GstStructure * structure,
+                                                                   const char   * field_name,
+                                                                   const gint     target_numerator,
+                                                                   const gint     target_denominator);
+
+gboolean              gst_structure_fixate_field  (GstStructure * structure,
+                                                   const char   * field_name);
+
+void                  gst_structure_fixate        (GstStructure * structure);
+
+gboolean              gst_structure_is_equal      (const GstStructure * structure1,
+                                                   const GstStructure * structure2);
+
+gboolean              gst_structure_is_subset     (const GstStructure * subset,
+                                                   const GstStructure * superset);
+
+gboolean              gst_structure_can_intersect (const GstStructure * struct1,
+                                                   const GstStructure * struct2);
+
+GstStructure *        gst_structure_intersect     (const GstStructure * struct1,
+                                                   const GstStructure * struct2) G_GNUC_MALLOC;
 
 G_END_DECLS
 
diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c
index 8385e1a..5e7f6b1 100644
--- a/gst/gstsystemclock.c
+++ b/gst/gstsystemclock.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -521,7 +521,7 @@
         GST_SECOND, sysclock->priv->frequency.QuadPart);
   } else
 #endif /* G_OS_WIN32 */
-#if !defined HAVE_POSIX_TIMERS
+#if !defined HAVE_POSIX_TIMERS || !defined HAVE_CLOCK_GETTIME
   {
     GTimeVal timeval;
 
@@ -555,7 +555,7 @@
     return GST_SECOND / sysclock->priv->frequency.QuadPart;
   } else
 #endif /* G_OS_WIN32 */
-#ifdef HAVE_POSIX_TIMERS
+#if defined(HAVE_POSIX_TIMERS) && defined(HAVE_CLOCK_GETTIME)
   {
     GstSystemClock *sysclock = GST_SYSTEM_CLOCK_CAST (clock);
     clockid_t ptype;
diff --git a/gst/gstsystemclock.h b/gst/gstsystemclock.h
index fc3b9b1..aa9dc14 100644
--- a/gst/gstsystemclock.h
+++ b/gst/gstsystemclock.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index d27985a..5f4a5a1 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -1031,14 +1031,20 @@
         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_quark, &dest);
-        g_value_unset (&dest);
+        if (GST_VALUE_HOLDS_LIST (value2) && !GST_VALUE_HOLDS_LIST (value))
+          gst_value_list_prepend_value ((GValue *) value2, value);
+        else {
+          gst_value_list_merge (&dest, value, value2);
+          gst_structure_id_take_value (list, tag_quark, &dest);
+        }
         break;
       case GST_TAG_MERGE_APPEND:
-        gst_value_list_merge (&dest, value2, value);
-        gst_structure_id_set_value (list, tag_quark, &dest);
-        g_value_unset (&dest);
+        if (GST_VALUE_HOLDS_LIST (value2) && !GST_VALUE_HOLDS_LIST (value))
+          gst_value_list_append_value ((GValue *) value2, value);
+        else {
+          gst_value_list_merge (&dest, value2, value);
+          gst_structure_id_take_value (list, tag_quark, &dest);
+        }
         break;
       case GST_TAG_MERGE_KEEP:
       case GST_TAG_MERGE_KEEP_ALL:
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index a818105..c66e216 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index 80d920c..cd402cb 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsttagsetter.h b/gst/gsttagsetter.h
index 580053c..509fc50 100644
--- a/gst/gsttagsetter.h
+++ b/gst/gsttagsetter.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TAG_SETTER_H__
diff --git a/gst/gsttask.c b/gst/gsttask.c
index 34d4ffb..993eb70 100644
--- a/gst/gsttask.c
+++ b/gst/gsttask.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -38,7 +38,7 @@
  * might sometimes be needed to create a #GstTask manually if it is not related to
  * a #GstPad.
  *
- * Before the #GstTask can be run, it needs a #GStaticRecMutex that can be set with
+ * Before the #GstTask can be run, it needs a #GRecMutex that can be set with
  * gst_task_set_lock().
  *
  * The task can be started, paused and stopped with gst_task_start(), gst_task_pause()
@@ -386,7 +386,7 @@
  * This function will not yet create and start a thread. Use gst_task_start() or
  * gst_task_pause() to create and start the GThread.
  *
- * Before the task can be used, a #GStaticRecMutex must be configured using the
+ * Before the task can be used, a #GRecMutex must be configured using the
  * gst_task_set_lock() function. This lock will always be acquired while
  * @func is called.
  *
diff --git a/gst/gsttask.h b/gst/gsttask.h
index 6464d86..85117ff 100644
--- a/gst/gsttask.h
+++ b/gst/gsttask.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TASK_H__
diff --git a/gst/gsttaskpool.c b/gst/gsttaskpool.c
index ba7413b..e08f2a3 100644
--- a/gst/gsttaskpool.c
+++ b/gst/gsttaskpool.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsttaskpool.h b/gst/gsttaskpool.h
index 4eccbfb..a1195dc 100644
--- a/gst/gsttaskpool.h
+++ b/gst/gsttaskpool.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TASK_POOL_H__
diff --git a/gst/gsttoc.c b/gst/gsttoc.c
index 0b67126..6da7ad8 100644
--- a/gst/gsttoc.c
+++ b/gst/gsttoc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -60,6 +60,15 @@
  * chapters and angles, for example, while the current TOC would only contain
  * the chapters for the currently playing title if playback of a specific
  * title was requested.
+ *
+ * Applications and plugins should not rely on TOCs having a certain kind of
+ * structure, but should allow for different alternatives. For example, a
+ * simple CUE sheet embedded in a file may be presented as a flat list of
+ * track entries, or could have a top-level edition node (or some other
+ * alternative type entry) with track entries underneath that node; or even
+ * multiple top-level edition nodes (or some other alternative type entries)
+ * each with track entries underneath, in case the source file has extracted
+ * a track listing from different sources).
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/gsttoc.h b/gst/gsttoc.h
index 9439cca..632435a 100644
--- a/gst/gsttoc.h
+++ b/gst/gsttoc.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TOC_H__
diff --git a/gst/gsttocsetter.c b/gst/gsttocsetter.c
index 2721b51..182a98c 100644
--- a/gst/gsttocsetter.c
+++ b/gst/gsttocsetter.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsttocsetter.h b/gst/gsttocsetter.h
index 9c59fa5..885525c 100644
--- a/gst/gsttocsetter.h
+++ b/gst/gsttocsetter.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TOC_SETTER_H__
diff --git a/gst/gsttrace.c b/gst/gsttrace.c
index 1d28c7e..4087929 100644
--- a/gst/gsttrace.c
+++ b/gst/gsttrace.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/gsttrace.h b/gst/gsttrace.h
index 9cbf210..021729f 100644
--- a/gst/gsttrace.h
+++ b/gst/gsttrace.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gsttypefind.c b/gst/gsttypefind.c
index e493cbf..c414810 100644
--- a/gst/gsttypefind.c
+++ b/gst/gsttypefind.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsttypefind.h b/gst/gsttypefind.h
index 0a987e4..f596f30 100644
--- a/gst/gsttypefind.h
+++ b/gst/gsttypefind.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gsttypefindfactory.c b/gst/gsttypefindfactory.c
index 26424d1..92eb52b 100644
--- a/gst/gsttypefindfactory.c
+++ b/gst/gsttypefindfactory.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsttypefindfactory.h b/gst/gsttypefindfactory.h
index 332134b..64238ce 100644
--- a/gst/gsttypefindfactory.h
+++ b/gst/gsttypefindfactory.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TYPE_FIND_FACTORY_H__
diff --git a/gst/gsturi.c b/gst/gsturi.c
index 552a66a..234a27d 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gsturi.h b/gst/gsturi.h
index d140c3d..8a4a9cc 100644
--- a/gst/gsturi.h
+++ b/gst/gsturi.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/gstutils.c b/gst/gstutils.c
index 73585f8..454c7fa 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -2718,8 +2718,8 @@
  * @filter: (allow-none): suggested #GstCaps, or NULL
  *
  * 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.
+ * Note that this method doesn't necessarily return the caps set by sending a
+ * gst_event_new_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.
@@ -3096,7 +3096,8 @@
 GstClockTime
 gst_util_get_timestamp (void)
 {
-#if defined (HAVE_POSIX_TIMERS) && defined(HAVE_MONOTONIC_CLOCK)
+#if defined (HAVE_POSIX_TIMERS) && defined(HAVE_MONOTONIC_CLOCK) &&\
+    defined (HAVE_CLOCK_GETTIME)
   struct timespec now;
 
   clock_gettime (CLOCK_MONOTONIC, &now);
@@ -3699,6 +3700,10 @@
  * handler interface should ideally generate a unique, deterministic
  * stream-id manually instead.
  *
+ * Since stream IDs are sorted alphabetically, any numbers in the
+ * stream ID should be printed with a fixed number of characters,
+ * preceded by 0's, such as by using the format %%03u instead of %%u.
+ *
  * Returns: A stream-id for @pad. g_free() after usage.
  */
 gchar *
@@ -3707,3 +3712,43 @@
 {
   return gst_pad_create_stream_id_printf (pad, parent, stream_id, NULL);
 }
+
+/**
+ * gst_pad_get_stream_id:
+ * @pad: A source #GstPad
+ *
+ * Returns the current stream-id for the @pad, or %NULL if none has been
+ * set yet, i.e. the pad has not received a stream-start event yet.
+ *
+ * This is a convenience wrapper around gst_pad_get_sticky_event() and
+ * gst_event_parse_stream_start().
+ *
+ * The returned stream-id string should be treated as an opaque string, its
+ * contents should not be interpreted.
+ *
+ * Returns: a newly-allocated copy of the stream-idfor @pad, or %NULL.
+ *     g_free() the returned string when no longer needed.
+ *
+ * Since: 1.2
+ */
+gchar *
+gst_pad_get_stream_id (GstPad * pad)
+{
+  const gchar *stream_id = NULL;
+  GstEvent *event;
+  gchar *ret = NULL;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+
+  event = gst_pad_get_sticky_event (pad, GST_EVENT_STREAM_START, 0);
+  if (event != NULL) {
+    gst_event_parse_stream_start (event, &stream_id);
+    ret = g_strdup (stream_id);
+    gst_event_unref (event);
+    GST_LOG_OBJECT (pad, "pad has stream-id '%s'", ret);
+  } else {
+    GST_DEBUG_OBJECT (pad, "pad has not received a stream-start event yet");
+  }
+
+  return ret;
+}
diff --git a/gst/gstutils.h b/gst/gstutils.h
index 269b375..54b7e45 100644
--- a/gst/gstutils.h
+++ b/gst/gstutils.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -158,7 +158,7 @@
 #  define GST_READ_UINT64_LE(data)      _GST_FAST_READ (64, data)
 # endif
 #else
-# define GST_READ_UINT64_BE(data)	(_GST_GET (data, 0, 64, 56) | \
+#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) | \
@@ -167,7 +167,7 @@
 					 _GST_GET (data, 6, 64,  8) | \
 					 _GST_GET (data, 7, 64,  0))
 
-# define GST_READ_UINT64_LE(data)	(_GST_GET (data, 7, 64, 56) | \
+#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) | \
@@ -175,6 +175,15 @@
 					 _GST_GET (data, 2, 64, 16) | \
 					 _GST_GET (data, 1, 64,  8) | \
 					 _GST_GET (data, 0, 64,  0))
+
+#define GST_READ_UINT64_BE(data) __gst_slow_read64_be((const guint8 *)(data))
+static inline guint64 __gst_slow_read64_be (const guint8 * data) {
+  return _GST_READ_UINT64_BE (data);
+}
+#define GST_READ_UINT64_LE(data) __gst_slow_read64_le((const guint8 *)(data))
+static inline guint64 __gst_slow_read64_le (const guint8 * data) {
+  return _GST_READ_UINT64_LE (data);
+}
 #endif
 
 /**
@@ -199,15 +208,24 @@
 #  define GST_READ_UINT32_LE(data)      _GST_FAST_READ (32, data)
 # endif
 #else
-# define GST_READ_UINT32_BE(data)	(_GST_GET (data, 0, 32, 24) | \
+#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_LE(data)	(_GST_GET (data, 3, 32, 24) | \
+#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_BE(data) __gst_slow_read32_be((const guint8 *)(data))
+static inline guint32 __gst_slow_read32_be (const guint8 * data) {
+  return _GST_READ_UINT32_BE (data);
+}
+#define GST_READ_UINT32_LE(data) __gst_slow_read32_le((const guint8 *)(data))
+static inline guint32 __gst_slow_read32_le (const guint8 * data) {
+  return _GST_READ_UINT32_LE (data);
+}
 #endif
 
 /**
@@ -216,20 +234,30 @@
  *
  * Read a 24 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT24_BE(data)        (_GST_GET (data, 0, 32, 16) | \
+#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_slow_read24_be((const guint8 *)(data))
+static inline guint32 __gst_slow_read24_be (const guint8 * data) {
+  return _GST_READ_UINT24_BE (data);
+}
+
 /**
  * GST_READ_UINT24_LE:
  * @data: memory location
  *
  * Read a 24 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT24_LE(data)        (_GST_GET (data, 2, 32, 16) | \
+#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_slow_read24_le((const guint8 *)(data))
+static inline guint32 __gst_slow_read24_le (const guint8 * data) {
+  return _GST_READ_UINT24_LE (data);
+}
+
 /**
  * GST_READ_UINT16_BE:
  * @data: memory location
@@ -251,11 +279,20 @@
 #  define GST_READ_UINT16_LE(data)      _GST_FAST_READ (16, data)
 # endif
 #else
-# define GST_READ_UINT16_BE(data)	(_GST_GET (data, 0, 16,  8) | \
+#define _GST_READ_UINT16_BE(data)	(_GST_GET (data, 0, 16,  8) | \
 					 _GST_GET (data, 1, 16,  0))
 
-# define GST_READ_UINT16_LE(data)	(_GST_GET (data, 1, 16,  8) | \
+#define _GST_READ_UINT16_LE(data)	(_GST_GET (data, 1, 16,  8) | \
 					 _GST_GET (data, 0, 16,  0))
+
+#define GST_READ_UINT16_BE(data) __gst_slow_read16_be((const guint8 *)(data))
+static inline guint16 __gst_slow_read16_be (const guint8 * data) {
+  return _GST_READ_UINT16_BE (data);
+}
+#define GST_READ_UINT16_LE(data) __gst_slow_read16_le((const guint8 *)(data))
+static inline guint16 __gst_slow_read16_le (const guint8 * data) {
+  return _GST_READ_UINT16_LE (data);
+}
 #endif
 
 /**
@@ -274,14 +311,15 @@
  * 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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 64, 56, num); \
+                                          _GST_PUT (__put_data, 1, 64, 48, num); \
+                                          _GST_PUT (__put_data, 2, 64, 40, num); \
+                                          _GST_PUT (__put_data, 3, 64, 32, num); \
+                                          _GST_PUT (__put_data, 4, 64, 24, num); \
+                                          _GST_PUT (__put_data, 5, 64, 16, num); \
+                                          _GST_PUT (__put_data, 6, 64,  8, num); \
+                                          _GST_PUT (__put_data, 7, 64,  0, num); \
                                         } while (0)
 
 /**
@@ -292,14 +330,15 @@
  * 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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 64,  0, num); \
+                                          _GST_PUT (__put_data, 1, 64,  8, num); \
+                                          _GST_PUT (__put_data, 2, 64, 16, num); \
+                                          _GST_PUT (__put_data, 3, 64, 24, num); \
+                                          _GST_PUT (__put_data, 4, 64, 32, num); \
+                                          _GST_PUT (__put_data, 5, 64, 40, num); \
+                                          _GST_PUT (__put_data, 6, 64, 48, num); \
+                                          _GST_PUT (__put_data, 7, 64, 56, num); \
                                         } while (0)
 
 /**
@@ -310,10 +349,11 @@
  * 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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 32, 24, num); \
+                                          _GST_PUT (__put_data, 1, 32, 16, num); \
+                                          _GST_PUT (__put_data, 2, 32,  8, num); \
+                                          _GST_PUT (__put_data, 3, 32,  0, num); \
                                         } while (0)
 
 /**
@@ -324,10 +364,11 @@
  * 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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 32,  0, num); \
+                                          _GST_PUT (__put_data, 1, 32,  8, num); \
+                                          _GST_PUT (__put_data, 2, 32, 16, num); \
+                                          _GST_PUT (__put_data, 3, 32, 24, num); \
                                         } while (0)
 
 /**
@@ -338,9 +379,10 @@
  * Store a 24 bit unsigned integer value in big endian format into the memory buffer.
  */
 #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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 32,  16, num); \
+                                          _GST_PUT (__put_data, 1, 32,  8, num); \
+                                          _GST_PUT (__put_data, 2, 32,  0, num); \
                                         } while (0)
 
 /**
@@ -351,9 +393,10 @@
  * Store a 24 bit unsigned integer value in little endian format into the memory buffer.
  */
 #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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 32,  0, num); \
+                                          _GST_PUT (__put_data, 1, 32,  8, num); \
+                                          _GST_PUT (__put_data, 2, 32,  16, num); \
                                         } while (0)
 
 /**
@@ -364,8 +407,9 @@
  * 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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 16,  8, num); \
+                                          _GST_PUT (__put_data, 1, 16,  0, num); \
                                         } while (0)
 
 /**
@@ -376,8 +420,9 @@
  * 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); \
+                                          gpointer __put_data = data; \
+                                          _GST_PUT (__put_data, 0, 16,  0, num); \
+                                          _GST_PUT (__put_data, 1, 16,  8, num); \
                                         } while (0)
 
 /**
@@ -892,6 +937,8 @@
 gchar *                 gst_pad_create_stream_id_printf        (GstPad * pad, GstElement * parent, const gchar *stream_id, ...);
 gchar *                 gst_pad_create_stream_id_printf_valist (GstPad * pad, GstElement * parent, const gchar *stream_id, va_list var_args);
 
+gchar *                 gst_pad_get_stream_id           (GstPad * pad);
+
 /* 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;
diff --git a/gst/gstvalue.c b/gst/gstvalue.c
index 557f728..094064f 100644
--- a/gst/gstvalue.c
+++ b/gst/gstvalue.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -144,6 +144,12 @@
 static gchar *gst_string_take_and_wrap (gchar * s);
 static gchar *gst_string_unwrap (const gchar * s);
 
+static void gst_value_move (GValue * dest, GValue * src);
+static void _gst_value_list_append_and_take_value (GValue * value,
+    GValue * append_value);
+static void _gst_value_array_append_and_take_value (GValue * value,
+    GValue * append_value);
+
 static inline GstValueTable *
 gst_value_hash_lookup_type (GType type)
 {
@@ -407,10 +413,37 @@
   return FALSE;
 }
 
+static inline void
+_gst_value_list_append_and_take_value (GValue * value, GValue * append_value)
+{
+  g_array_append_vals ((GArray *) value->data[0].v_pointer, append_value, 1);
+  memset (append_value, 0, sizeof (GValue));
+}
+
+/**
+ * gst_value_list_append_and_take_value:
+ * @value: a #GValue of type #GST_TYPE_LIST
+ * @append_value: (transfer full): the value to append
+ *
+ * Appends @append_value to the GstValueList in @value.
+ *
+ * Since: 1.2
+ */
+void
+gst_value_list_append_and_take_value (GValue * value, GValue * append_value)
+{
+  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_list_append_and_take_value (value, append_value);
+}
+
 /**
  * gst_value_list_append_value:
  * @value: a #GValue of type #GST_TYPE_LIST
- * @append_value: the value to append
+ * @append_value: (transfer none): the value to append
  *
  * Appends @append_value to the GstValueList in @value.
  */
@@ -659,6 +692,33 @@
   g_array_append_vals ((GArray *) value->data[0].v_pointer, &val, 1);
 }
 
+static inline void
+_gst_value_array_append_and_take_value (GValue * value, GValue * append_value)
+{
+  g_array_append_vals ((GArray *) value->data[0].v_pointer, append_value, 1);
+  memset (append_value, 0, sizeof (GValue));
+}
+
+/**
+ * gst_value_array_append_and_take_value:
+ * @value: a #GValue of type #GST_TYPE_ARRAY
+ * @append_value: (transfer full): the value to append
+ *
+ * Appends @append_value to the GstValueArray in @value.
+ *
+ * Since: 1.2
+ */
+void
+gst_value_array_append_and_take_value (GValue * value, GValue * append_value)
+{
+  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_array_append_and_take_value (value, append_value);
+}
+
 /**
  * gst_value_array_prepend_value:
  * @value: a #GValue of type #GST_TYPE_ARRAY
@@ -1812,6 +1872,17 @@
   return (GstCaps *) g_value_get_boxed (value);
 }
 
+static gint
+gst_value_compare_caps (const GValue * value1, const GValue * value2)
+{
+  GstCaps *caps1 = GST_CAPS (gst_value_get_caps (value1));
+  GstCaps *caps2 = GST_CAPS (gst_value_get_caps (value2));
+
+  if (gst_caps_is_equal (caps1, caps2))
+    return GST_VALUE_EQUAL;
+  return GST_VALUE_UNORDERED;
+}
+
 static gchar *
 gst_value_serialize_caps (const GValue * value)
 {
@@ -1976,6 +2047,76 @@
   return FALSE;
 }
 
+/*******************
+ * GstCapsFeatures *
+ *******************/
+
+/**
+ * gst_value_set_caps_features:
+ * @value: a GValue initialized to GST_TYPE_CAPS_FEATURES
+ * @features: the features to set the value to
+ *
+ * Sets the contents of @value to @features.
+ */
+void
+gst_value_set_caps_features (GValue * value, const GstCapsFeatures * features)
+{
+  g_return_if_fail (G_IS_VALUE (value));
+  g_return_if_fail (G_VALUE_TYPE (value) == GST_TYPE_CAPS_FEATURES);
+  g_return_if_fail (features == NULL || GST_IS_CAPS_FEATURES (features));
+
+  g_value_set_boxed (value, features);
+}
+
+/**
+ * gst_value_get_caps_features:
+ * @value: a GValue initialized to GST_TYPE_CAPS_FEATURES
+ *
+ * Gets the contents of @value.
+ *
+ * Returns: (transfer none): the contents of @value
+ */
+const GstCapsFeatures *
+gst_value_get_caps_features (const GValue * value)
+{
+  g_return_val_if_fail (G_IS_VALUE (value), NULL);
+  g_return_val_if_fail (G_VALUE_TYPE (value) == GST_TYPE_CAPS_FEATURES, NULL);
+
+  return (GstCapsFeatures *) g_value_get_boxed (value);
+}
+
+static gchar *
+gst_value_serialize_caps_features (const GValue * value)
+{
+  GstCapsFeatures *features = g_value_get_boxed (value);
+
+  return gst_string_take_and_wrap (gst_caps_features_to_string (features));
+}
+
+static gboolean
+gst_value_deserialize_caps_features (GValue * dest, const gchar * s)
+{
+  GstCapsFeatures *features;
+
+  if (*s != '"') {
+    features = gst_caps_features_from_string (s);
+  } else {
+    gchar *str = gst_string_unwrap (s);
+
+    if (G_UNLIKELY (!str))
+      return FALSE;
+
+    features = gst_caps_features_from_string (str);
+    g_free (str);
+  }
+
+  if (G_LIKELY (features)) {
+    g_value_take_boxed (dest, features);
+    return TRUE;
+  }
+  return FALSE;
+}
+
 /**************
  * GstTagList *
  **************/
@@ -3490,19 +3631,18 @@
     if (gst_value_intersect (&intersection, cur, value2)) {
       /* append value */
       if (!ret) {
-        gst_value_init_and_copy (dest, &intersection);
+        gst_value_move (dest, &intersection);
         ret = TRUE;
       } else if (GST_VALUE_HOLDS_LIST (dest)) {
-        gst_value_list_append_value (dest, &intersection);
+        _gst_value_list_append_and_take_value (dest, &intersection);
       } else {
-        GValue temp = { 0, };
+        GValue temp;
 
-        gst_value_init_and_copy (&temp, dest);
-        g_value_unset (dest);
+        gst_value_move (&temp, dest);
         gst_value_list_merge (dest, &temp, &intersection);
         g_value_unset (&temp);
+        g_value_unset (&intersection);
       }
-      g_value_unset (&intersection);
     }
   }
 
@@ -3541,8 +3681,7 @@
       g_value_unset (dest);
       return FALSE;
     }
-    gst_value_array_append_value (dest, &val);
-    g_value_unset (&val);
+    _gst_value_array_append_and_take_value (dest, &val);
   }
 
   return TRUE;
@@ -4015,20 +4154,19 @@
 
     if (gst_value_subtract (&subtraction, cur, subtrahend)) {
       if (!ret) {
-        gst_value_init_and_copy (dest, &subtraction);
+        gst_value_move (dest, &subtraction);
         ret = TRUE;
       } else if (G_VALUE_HOLDS (dest, ltype)
           && !G_VALUE_HOLDS (&subtraction, ltype)) {
-        gst_value_list_append_value (dest, &subtraction);
+        _gst_value_list_append_and_take_value (dest, &subtraction);
       } else {
-        GValue temp = { 0, };
+        GValue temp;
 
-        gst_value_init_and_copy (&temp, dest);
-        g_value_unset (dest);
+        gst_value_move (&temp, dest);
         gst_value_list_concat (dest, &temp, &subtraction);
         g_value_unset (&temp);
+        g_value_unset (&subtraction);
       }
-      g_value_unset (&subtraction);
     }
   }
   return ret;
@@ -4058,9 +4196,11 @@
       return FALSE;
     }
   }
-  if (dest)
-    gst_value_init_and_copy (dest, result);
-  g_value_unset (result);
+  if (dest) {
+    gst_value_move (dest, result);
+  } else {
+    g_value_unset (result);
+  }
   return TRUE;
 }
 
@@ -4737,11 +4877,8 @@
 {
   GstValueSubtractInfo info;
 
-  /* 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));
+  g_return_if_fail (!gst_type_is_fixed (minuend_type)
+      || !gst_type_is_fixed (subtrahend_type));
 
   info.minuend = minuend_type;
   info.subtrahend = subtrahend_type;
@@ -4793,6 +4930,17 @@
   g_value_copy (src, dest);
 }
 
+/* move src into dest and clear src */
+static void
+gst_value_move (GValue * dest, GValue * src)
+{
+  g_assert (G_IS_VALUE (src));
+  g_assert (dest != NULL);
+
+  *dest = *src;
+  memset (src, 0, sizeof (GValue));
+}
+
 /**
  * gst_value_serialize:
  * @value: a #GValue to serialize
@@ -4962,9 +5110,11 @@
 
     gst_value_init_and_copy (&temp, gst_value_list_get_value (src, 0));
 
-    if (!gst_value_fixate (dest, &temp))
-      gst_value_init_and_copy (dest, &temp);
-    g_value_unset (&temp);
+    if (!gst_value_fixate (dest, &temp)) {
+      gst_value_move (dest, &temp);
+    } else {
+      g_value_unset (&temp);
+    }
   } else if (G_VALUE_TYPE (src) == GST_TYPE_ARRAY) {
     gboolean res = FALSE;
     guint n, len;
@@ -4979,8 +5129,7 @@
         gst_value_init_and_copy (&kid, orig_kid);
       else
         res = TRUE;
-      gst_value_array_append_value (dest, &kid);
-      g_value_unset (&kid);
+      _gst_value_array_append_and_take_value (dest, &kid);
     }
 
     if (!res)
@@ -5618,58 +5767,6 @@
   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)
 {
@@ -5844,6 +5941,25 @@
 
 FUNC_VALUE_GET_TYPE (bitmask, "GstBitmask");
 
+GType
+gst_g_thread_get_type (void)
+{
+#if GLIB_CHECK_VERSION(2,35,3)
+  return G_TYPE_THREAD;
+#else
+  static volatile gsize type_id = 0;
+
+  if (g_once_init_enter (&type_id)) {
+    GType tmp =
+        g_boxed_type_register_static (g_intern_static_string ("GstGThread"),
+        (GBoxedCopyFunc) g_thread_ref,
+        (GBoxedFreeFunc) g_thread_unref);
+    g_once_init_leave (&type_id, tmp);
+  }
+
+  return type_id;
+#endif
+}
 
 void
 _priv_gst_value_initialize (void)
@@ -5977,7 +6093,7 @@
   {
     static GstValueTable gst_value = {
       0,
-      NULL,
+      gst_value_compare_caps,
       gst_value_serialize_caps,
       gst_value_deserialize_caps,
     };
@@ -6011,6 +6127,17 @@
     static GstValueTable gst_value = {
       0,
       NULL,
+      gst_value_serialize_caps_features,
+      gst_value_deserialize_caps_features,
+    };
+
+    gst_value.type = GST_TYPE_CAPS_FEATURES;
+    gst_value_register (&gst_value);
+  }
+  {
+    static GstValueTable gst_value = {
+      0,
+      NULL,
       gst_value_serialize_tag_list,
       gst_value_deserialize_tag_list,
     };
@@ -6131,8 +6258,6 @@
   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);
@@ -6159,8 +6284,6 @@
   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 */
   {
@@ -6173,8 +6296,6 @@
       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 4ea492f..d03d22e 100644
--- a/gst/gstvalue.h
+++ b/gst/gstvalue.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VALUE_H__
@@ -23,6 +23,7 @@
 #include <gst/gstconfig.h>
 #include <gst/gstcaps.h>
 #include <gst/gststructure.h>
+#include <gst/gstcapsfeatures.h>
 
 G_BEGIN_DECLS
 
@@ -150,6 +151,14 @@
 #define GST_VALUE_HOLDS_STRUCTURE(x)            (G_VALUE_HOLDS((x), GST_TYPE_STRUCTURE))
 
 /**
+ * GST_VALUE_HOLDS_CAPS_FEATURES:
+ * @x: the #GValue to check
+ *
+ * Checks if the given #GValue contains a #GST_TYPE_CAPS_FEATURES value.
+ */
+#define GST_VALUE_HOLDS_CAPS_FEATURES(x)        (G_VALUE_HOLDS((x), GST_TYPE_CAPS_FEATURES))
+
+/**
  * GST_VALUE_HOLDS_BUFFER:
  * @x: the #GValue to check
  *
@@ -284,6 +293,16 @@
 #define GST_TYPE_BITMASK                 gst_bitmask_get_type ()
 
 /**
+ * GST_TYPE_G_THREAD:
+ *
+ * a boxed #GValue type for #GThread that represents a thread.
+ *
+ * Returns: the #GType of GstGThread
+ */
+
+#define GST_TYPE_G_THREAD                gst_g_thread_get_type ()
+
+/**
  * GST_VALUE_LESS_THAN:
  *
  * Indicates that the first value provided to a comparison function
@@ -381,6 +400,11 @@
 GType gst_value_array_get_type (void);
 GType gst_bitmask_get_type (void);
 
+/* Hide this compatibility type from introspection */
+#ifndef __GI_SCANNER__
+GType gst_g_thread_get_type (void);
+#endif
+
 GType gst_date_time_get_type (void);
 
 void            gst_value_register              (const GstValueTable   *table);
@@ -394,6 +418,8 @@
 /* list */
 void            gst_value_list_append_value     (GValue         *value,
                                                  const GValue   *append_value);
+void            gst_value_list_append_and_take_value (GValue         *value,
+                                                 GValue   *append_value);
 void            gst_value_list_prepend_value    (GValue         *value,
                                                  const GValue   *prepend_value);
 void            gst_value_list_concat           (GValue         *dest,
@@ -409,6 +435,8 @@
 /* array */
 void            gst_value_array_append_value    (GValue         *value,
                                                  const GValue   *append_value);
+void            gst_value_array_append_and_take_value    (GValue         *value,
+                                                 GValue   *append_value);
 void            gst_value_array_prepend_value   (GValue         *value,
                                                  const GValue   *prepend_value);
 guint           gst_value_array_get_size        (const GValue   *value);
@@ -457,6 +485,12 @@
 void            gst_value_set_structure         (GValue         *value,
                                                  const GstStructure  *structure);
 
+/* caps features */
+const GstCapsFeatures *
+                gst_value_get_caps_features     (const GValue   *value);
+void            gst_value_set_caps_features     (GValue         *value,
+                                                 const GstCapsFeatures  *features);
+
 /* fraction */
 void            gst_value_set_fraction          (GValue         *value,
                                                  gint           numerator,
diff --git a/gst/gstversion.h.in b/gst/gstversion.h.in
index 9ba49f3..4ed2c92 100644
--- a/gst/gstversion.h.in
+++ b/gst/gstversion.h.in
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstversion
diff --git a/gst/math-compat.h b/gst/math-compat.h
index d160c2c..7573b3a 100644
--- a/gst/math-compat.h
+++ b/gst/math-compat.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MATH_COMPAT_H__
diff --git a/gst/parse/Makefile.in b/gst/parse/Makefile.in
index f24c5eb..c09ba42 100644
--- a/gst/parse/Makefile.in
+++ b/gst/parse/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/parse
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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 \
@@ -86,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -108,10 +136,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstparse_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
 	$@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -124,20 +165,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(nodist_libgstparse_la_SOURCES)
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -146,6 +183,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -247,15 +301,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -265,11 +315,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -277,6 +325,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -339,6 +388,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -489,12 +539,15 @@
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_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
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -548,26 +601,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -579,15 +621,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -596,6 +634,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -738,18 +791,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 Android.mk: Makefile.am
diff --git a/gst/parse/grammar.tab.h b/gst/parse/grammar.tab.h
index 164198f..1d4e16a 100644
--- a/gst/parse/grammar.tab.h
+++ b/gst/parse/grammar.tab.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
 
 /* Bison interface for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2013 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
@@ -30,6 +30,15 @@
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+#ifndef YY_PRIV_GST_PARSE_YY_GRAMMAR_TAB_H_INCLUDED
+# define YY_PRIV_GST_PARSE_YY_GRAMMAR_TAB_H_INCLUDED
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int priv_gst_parse_yydebug;
+#endif
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
@@ -48,12 +57,10 @@
 #endif
 
 
-
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-
-/* Line 2068 of yacc.c  */
+/* Line 2053 of yacc.c  */
 #line 632 "./grammar.y"
 
     gchar *s;
@@ -64,9 +71,8 @@
     graph_t *g;
 
 
-
-/* Line 2068 of yacc.c  */
-#line 70 "grammar.tab.h"
+/* Line 2053 of yacc.c  */
+#line 76 "grammar.tab.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -74,5 +80,18 @@
 #endif
 
 
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int priv_gst_parse_yyparse (void *YYPARSE_PARAM);
+#else
+int priv_gst_parse_yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int priv_gst_parse_yyparse (void *scanner, graph_t *graph);
+#else
+int priv_gst_parse_yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
-
+#endif /* !YY_PRIV_GST_PARSE_YY_GRAMMAR_TAB_H_INCLUDED  */
diff --git a/gst/printf/Makefile.am b/gst/printf/Makefile.am
new file mode 100644
index 0000000..1388be7
--- /dev/null
+++ b/gst/printf/Makefile.am
@@ -0,0 +1,32 @@
+AM_CPPFLAGS = $(GLIB_CFLAGS) -DSTATIC=G_GNUC_INTERNAL $(WARNING_CFLAGS) $(PRINTF_CFLAGS)
+
+# don't have a need for that and it's not portable so just ignore for now
+AM_CPPFLAGS += -UHAVE_LONG_DOUBLE
+
+# just use internal emulation for printing long longs for now
+AM_CPPFLAGS += -UHAVE_LONG_LONG_FORMAT
+
+# don't need any of this widechar stuff, so just disable it for now
+AM_CPPFLAGS += -UHAVE_WCHAR_T -UHAVE_WCSLEN -UHAVE_WINT_T
+
+# in case anyone wants to add anything else or undo some of the undefs
+AM_CPPFLAGS += $(PRINTF_EXTRA_CFLAGS)
+
+noinst_LTLIBRARIES = libgstprintf.la
+
+libgstprintf_la_CFLAGS =
+libgstprintf_la_SOURCES = 	\
+	asnprintf.c \
+	printf-args.c \
+	printf-args.h \
+	printf-parse.c \
+	printf-parse.h \
+	vasnprintf.c \
+	vasnprintf.h \
+	printf.c \
+	printf.h \
+	printf-extension.c \
+	printf-extension.h \
+	gst-printf.h
+
+EXTRA_DIST = README
diff --git a/gst/printf/Makefile.in b/gst/printf/Makefile.in
new file mode 100644
index 0000000..16ab662
--- /dev/null
+++ b/gst/printf/Makefile.in
@@ -0,0 +1,846 @@
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 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@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+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@
+target_triplet = @target@
+subdir = gst/printf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp README
+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-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/ax_pthread.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/inttypes_h.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/longlong.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)/m4/stdint_h.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 =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libgstprintf_la_LIBADD =
+am_libgstprintf_la_OBJECTS = libgstprintf_la-asnprintf.lo \
+	libgstprintf_la-printf-args.lo libgstprintf_la-printf-parse.lo \
+	libgstprintf_la-vasnprintf.lo libgstprintf_la-printf.lo \
+	libgstprintf_la-printf-extension.lo
+libgstprintf_la_OBJECTS = $(am_libgstprintf_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libgstprintf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstprintf_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+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_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+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_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libgstprintf_la_SOURCES)
+DIST_SOURCES = $(libgstprintf_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+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@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+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_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_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_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_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
+GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
+GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
+GST_REVISION = @GST_REVISION@
+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@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
+HAVE_DVIPS = @HAVE_DVIPS@
+HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
+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@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
+HOST_CPU = @HOST_CPU@
+HTML_DIR = @HTML_DIR@
+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@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+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@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+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_AR = @ac_ct_AR@
+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@
+ax_pthread_config = @ax_pthread_config@
+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@
+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 = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# don't have a need for that and it's not portable so just ignore for now
+
+# just use internal emulation for printing long longs for now
+
+# don't need any of this widechar stuff, so just disable it for now
+
+# in case anyone wants to add anything else or undo some of the undefs
+AM_CPPFLAGS = $(GLIB_CFLAGS) -DSTATIC=G_GNUC_INTERNAL \
+	$(WARNING_CFLAGS) $(PRINTF_CFLAGS) -UHAVE_LONG_DOUBLE \
+	-UHAVE_LONG_LONG_FORMAT -UHAVE_WCHAR_T -UHAVE_WCSLEN \
+	-UHAVE_WINT_T $(PRINTF_EXTRA_CFLAGS)
+noinst_LTLIBRARIES = libgstprintf.la
+libgstprintf_la_CFLAGS = 
+libgstprintf_la_SOURCES = \
+	asnprintf.c \
+	printf-args.c \
+	printf-args.h \
+	printf-parse.c \
+	printf-parse.h \
+	vasnprintf.c \
+	vasnprintf.h \
+	printf.c \
+	printf.h \
+	printf-extension.c \
+	printf-extension.h \
+	gst-printf.h
+
+EXTRA_DIST = README
+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 gst/printf/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu gst/printf/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):
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
+libgstprintf.la: $(libgstprintf_la_OBJECTS) $(libgstprintf_la_DEPENDENCIES) $(EXTRA_libgstprintf_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstprintf_la_LINK)  $(libgstprintf_la_OBJECTS) $(libgstprintf_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprintf_la-asnprintf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprintf_la-printf-args.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprintf_la-printf-extension.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprintf_la-printf-parse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprintf_la-printf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprintf_la-vasnprintf.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
+@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@	$(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
+@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@	$(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
+@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@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+libgstprintf_la-asnprintf.lo: asnprintf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprintf_la_CFLAGS) $(CFLAGS) -MT libgstprintf_la-asnprintf.lo -MD -MP -MF $(DEPDIR)/libgstprintf_la-asnprintf.Tpo -c -o libgstprintf_la-asnprintf.lo `test -f 'asnprintf.c' || echo '$(srcdir)/'`asnprintf.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstprintf_la-asnprintf.Tpo $(DEPDIR)/libgstprintf_la-asnprintf.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='asnprintf.c' object='libgstprintf_la-asnprintf.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) $(libgstprintf_la_CFLAGS) $(CFLAGS) -c -o libgstprintf_la-asnprintf.lo `test -f 'asnprintf.c' || echo '$(srcdir)/'`asnprintf.c
+
+libgstprintf_la-printf-args.lo: printf-args.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprintf_la_CFLAGS) $(CFLAGS) -MT libgstprintf_la-printf-args.lo -MD -MP -MF $(DEPDIR)/libgstprintf_la-printf-args.Tpo -c -o libgstprintf_la-printf-args.lo `test -f 'printf-args.c' || echo '$(srcdir)/'`printf-args.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstprintf_la-printf-args.Tpo $(DEPDIR)/libgstprintf_la-printf-args.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printf-args.c' object='libgstprintf_la-printf-args.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) $(libgstprintf_la_CFLAGS) $(CFLAGS) -c -o libgstprintf_la-printf-args.lo `test -f 'printf-args.c' || echo '$(srcdir)/'`printf-args.c
+
+libgstprintf_la-printf-parse.lo: printf-parse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprintf_la_CFLAGS) $(CFLAGS) -MT libgstprintf_la-printf-parse.lo -MD -MP -MF $(DEPDIR)/libgstprintf_la-printf-parse.Tpo -c -o libgstprintf_la-printf-parse.lo `test -f 'printf-parse.c' || echo '$(srcdir)/'`printf-parse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstprintf_la-printf-parse.Tpo $(DEPDIR)/libgstprintf_la-printf-parse.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printf-parse.c' object='libgstprintf_la-printf-parse.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) $(libgstprintf_la_CFLAGS) $(CFLAGS) -c -o libgstprintf_la-printf-parse.lo `test -f 'printf-parse.c' || echo '$(srcdir)/'`printf-parse.c
+
+libgstprintf_la-vasnprintf.lo: vasnprintf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprintf_la_CFLAGS) $(CFLAGS) -MT libgstprintf_la-vasnprintf.lo -MD -MP -MF $(DEPDIR)/libgstprintf_la-vasnprintf.Tpo -c -o libgstprintf_la-vasnprintf.lo `test -f 'vasnprintf.c' || echo '$(srcdir)/'`vasnprintf.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstprintf_la-vasnprintf.Tpo $(DEPDIR)/libgstprintf_la-vasnprintf.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vasnprintf.c' object='libgstprintf_la-vasnprintf.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) $(libgstprintf_la_CFLAGS) $(CFLAGS) -c -o libgstprintf_la-vasnprintf.lo `test -f 'vasnprintf.c' || echo '$(srcdir)/'`vasnprintf.c
+
+libgstprintf_la-printf.lo: printf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprintf_la_CFLAGS) $(CFLAGS) -MT libgstprintf_la-printf.lo -MD -MP -MF $(DEPDIR)/libgstprintf_la-printf.Tpo -c -o libgstprintf_la-printf.lo `test -f 'printf.c' || echo '$(srcdir)/'`printf.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstprintf_la-printf.Tpo $(DEPDIR)/libgstprintf_la-printf.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printf.c' object='libgstprintf_la-printf.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) $(libgstprintf_la_CFLAGS) $(CFLAGS) -c -o libgstprintf_la-printf.lo `test -f 'printf.c' || echo '$(srcdir)/'`printf.c
+
+libgstprintf_la-printf-extension.lo: printf-extension.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprintf_la_CFLAGS) $(CFLAGS) -MT libgstprintf_la-printf-extension.lo -MD -MP -MF $(DEPDIR)/libgstprintf_la-printf-extension.Tpo -c -o libgstprintf_la-printf-extension.lo `test -f 'printf-extension.c' || echo '$(srcdir)/'`printf-extension.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstprintf_la-printf-extension.Tpo $(DEPDIR)/libgstprintf_la-printf-extension.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='printf-extension.c' object='libgstprintf_la-printf-extension.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) $(libgstprintf_la_CFLAGS) $(CFLAGS) -c -o libgstprintf_la-printf-extension.lo `test -f 'printf-extension.c' || echo '$(srcdir)/'`printf-extension.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	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-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	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"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+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)
+installdirs:
+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:
+	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:
+
+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-noinstLTLIBRARIES \
+	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-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:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
+
+
+# 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/gst/printf/README b/gst/printf/README
new file mode 100644
index 0000000..c8eac38
--- /dev/null
+++ b/gst/printf/README
@@ -0,0 +1,59 @@
+The files
+
+ asnprintf.c
+ printf-args.c
+ printf-args.h
+ printf-parse.c
+ printf-parse.h
+ vasnprintf.c
+ vasnprintf.h
+
+are taken from the vasnprintf module of the GNUlib package, which can
+be found at:
+
+ http://www.gnu.org/software/gnulib/
+
+All files have been modified to include g-gnulib.h.
+
+vasnprintf.c has also been modified to include support for long long
+printing if the system printf doesn't. This code is protected by
+#ifndef HAVE_LONG_LONG_FORMAT.
+
+Code has been added to printf-args.[ch], printf-parse.c and vasnprintf.c
+to support printing of __int64 values with the I64 format modifier. This
+is protected by #ifdef HAVE_INT64_AND_I64.
+
+The files
+
+ printf.h
+ printf.c
+ g-gnulib.h
+
+have been written by me. printf.[hc] contain implementations of the
+remaining functions in the printf family based on vasnprintf.
+g-gnulib.h is included by all source files in order to move all
+exported functions to the _g_gnulib namespace, replace malloc by
+g_malloc and make sure that snprintf is only used if it implements
+C99 return value semantics.
+
+Matthias Clasen
+November 1, 2003
+
+-----
+
+GStreamer modifications
+
+This was imported from GLib's gnulib subdirectory.
+
+g-gnulib.h and _g_gnulib namespace has been changed to gst-printf.h and
+__gst_printf namespace for GStreamer. Also #define HAVE_SNPRINTF 0 has
+been changed to #undef HAVE_SNPRINTF, and HAVE_ALLOCA has been replaced
+by an #if defined(alloca) || defined(GLIB_HAVE_ALLOCA_H)
+
+printf-extension.[ch] were added to provide support for custom pointer
+arguments (e.g. caps, events, etc.)
+
+Files have also been indented with gst-indent, so this is basically a
+permanent fork and any patches will have to be merged manually.
+
+March 30, 2013.
diff --git a/gst/printf/asnprintf.c b/gst/printf/asnprintf.c
new file mode 100644
index 0000000..d606d38
--- /dev/null
+++ b/gst/printf/asnprintf.c
@@ -0,0 +1,40 @@
+/* Formatted output to strings.
+   Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; 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-printf.h"
+
+/* Specification.  */
+#include "vasnprintf.h"
+
+#include <stdarg.h>
+
+char *
+asnprintf (char *resultbuf, size_t * lengthp, const char *format, ...)
+{
+  va_list args;
+  char *result;
+
+  va_start (args, format);
+  result = vasnprintf (resultbuf, lengthp, format, args);
+  va_end (args);
+  return result;
+}
diff --git a/gst/printf/gst-printf.h b/gst/printf/gst-printf.h
new file mode 100644
index 0000000..b7d55a9
--- /dev/null
+++ b/gst/printf/gst-printf.h
@@ -0,0 +1,60 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 2003  Matthias Clasen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 __G_GNULIB_H__
+
+#include "config.h"
+#include <stdlib.h>
+#include <glib.h>
+
+/* Private namespace for gnulib functions */
+#define asnprintf        __gst_asnprintf
+#define vasnprintf       __gst_vasnprintf
+#define printf_parse     __gst_printf_parse
+#define printf_fetchargs __gst_printf_fetchargs
+
+/* Use GLib memory allocation */
+#undef malloc
+#undef realloc
+#undef free
+#define malloc  g_malloc
+#define realloc g_realloc
+#define free    g_free
+
+/* Don't use snprintf(); we have to use sprintf instead and do our own
+ * length calculations, because glibc doesn't allow passing %n in a format
+ * string if the string is in writable memory (if glibc has been compiled
+ * with _FORTIFY_SOURCE=2 which seems to be the case on some distros/systems) */
+#undef HAVE_SNPRINTF
+
+/* based on glib's config.h.win32.in */
+#ifdef G_OS_WIN32
+
+/* define to support printing 64-bit integers with format I64 */
+#define HAVE_INT64_AND_I64 1
+
+/* FIXME: do we need to do anything else here? or should we just typedef/define
+ * intmax_t etc. to __int64? */
+#if defined (_MSC_VER) && _MSC_VER >= 1600
+#undef HAVE_INTMAX_T
+#define HAVE_INTMAX_T 1
+#endif
+
+#endif /* G_OS_WIN32 */
+
+#endif  /* __G_GNULIB_H__ */
diff --git a/gst/printf/printf-args.c b/gst/printf/printf-args.c
new file mode 100644
index 0000000..1177ddb
--- /dev/null
+++ b/gst/printf/printf-args.c
@@ -0,0 +1,133 @@
+/* Decomposed printf argument list.
+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; 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-printf.h"
+
+/* Specification.  */
+#include "printf-args.h"
+
+#ifdef STATIC
+STATIC
+#endif
+    int
+printf_fetchargs (va_list args, arguments * a)
+{
+  unsigned int i;
+  argument *ap;
+
+  for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
+    switch (ap->type) {
+      case TYPE_SCHAR:
+        ap->a.a_schar = va_arg (args, /*signed char */ int);
+        break;
+      case TYPE_UCHAR:
+        ap->a.a_uchar = va_arg (args, /*unsigned char */ int);
+        break;
+      case TYPE_SHORT:
+        ap->a.a_short = va_arg (args, /*short */ int);
+        break;
+      case TYPE_USHORT:
+        ap->a.a_ushort = va_arg (args, /*unsigned short */ int);
+        break;
+      case TYPE_INT:
+        ap->a.a_int = va_arg (args, int);
+        break;
+      case TYPE_UINT:
+        ap->a.a_uint = va_arg (args, unsigned int);
+        break;
+      case TYPE_LONGINT:
+        ap->a.a_longint = va_arg (args, long int);
+        break;
+      case TYPE_ULONGINT:
+        ap->a.a_ulongint = va_arg (args, unsigned long int);
+        break;
+#ifdef HAVE_LONG_LONG
+      case TYPE_LONGLONGINT:
+        ap->a.a_longlongint = va_arg (args, long long int);
+        break;
+      case TYPE_ULONGLONGINT:
+        ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
+        break;
+#endif
+#ifdef HAVE_INT64_AND_I64
+      case TYPE_INT64:
+        ap->a.a_int64 = va_arg (args, __int64);
+        break;
+      case TYPE_UINT64:
+        ap->a.a_uint64 = va_arg (args, unsigned __int64);
+        break;
+#endif
+      case TYPE_DOUBLE:
+        ap->a.a_double = va_arg (args, double);
+        break;
+#ifdef HAVE_LONG_DOUBLE
+      case TYPE_LONGDOUBLE:
+        ap->a.a_longdouble = va_arg (args, long double);
+        break;
+#endif
+      case TYPE_CHAR:
+        ap->a.a_char = va_arg (args, int);
+        break;
+#ifdef HAVE_WINT_T
+      case TYPE_WIDE_CHAR:
+#ifdef _WIN32
+        ap->a.a_wide_char = va_arg (args, int);
+#else
+        ap->a.a_wide_char = va_arg (args, wint_t);
+#endif
+        break;
+#endif
+      case TYPE_STRING:
+        ap->a.a_string = va_arg (args, const char *);
+        break;
+#ifdef HAVE_WCHAR_T
+      case TYPE_WIDE_STRING:
+        ap->a.a_wide_string = va_arg (args, const wchar_t *);
+        break;
+#endif
+      case TYPE_POINTER:
+      case TYPE_POINTER_EXT:
+        ap->a.a_pointer = va_arg (args, void *);
+        break;
+      case TYPE_COUNT_SCHAR_POINTER:
+        ap->a.a_count_schar_pointer = va_arg (args, signed char *);
+        break;
+      case TYPE_COUNT_SHORT_POINTER:
+        ap->a.a_count_short_pointer = va_arg (args, short *);
+        break;
+      case TYPE_COUNT_INT_POINTER:
+        ap->a.a_count_int_pointer = va_arg (args, int *);
+        break;
+      case TYPE_COUNT_LONGINT_POINTER:
+        ap->a.a_count_longint_pointer = va_arg (args, long int *);
+        break;
+#ifdef HAVE_LONG_LONG
+      case TYPE_COUNT_LONGLONGINT_POINTER:
+        ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
+        break;
+#endif
+      default:
+        /* Unknown type.  */
+        return -1;
+    }
+  return 0;
+}
diff --git a/gst/printf/printf-args.h b/gst/printf/printf-args.h
new file mode 100644
index 0000000..12a3c18
--- /dev/null
+++ b/gst/printf/printf-args.h
@@ -0,0 +1,147 @@
+/* Decomposed printf argument list.
+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   USA.  */
+
+#ifndef _PRINTF_ARGS_H
+#define _PRINTF_ARGS_H
+
+/* Get wchar_t.  */
+#ifdef HAVE_WCHAR_T
+# include <stddef.h>
+#endif
+
+/* Get wint_t.  */
+#ifdef HAVE_WINT_T
+# include <wchar.h>
+#endif
+
+/* Get va_list.  */
+#include <stdarg.h>
+
+#define POINTER_EXT_SIGNIFIER_CHAR '\a'
+
+/* Argument types */
+typedef enum
+{
+  TYPE_NONE,
+  TYPE_SCHAR,
+  TYPE_UCHAR,
+  TYPE_SHORT,
+  TYPE_USHORT,
+  TYPE_INT,
+  TYPE_UINT,
+  TYPE_LONGINT,
+  TYPE_ULONGINT,
+#ifdef HAVE_LONG_LONG
+  TYPE_LONGLONGINT,
+  TYPE_ULONGLONGINT,
+#endif
+#ifdef HAVE_INT64_AND_I64
+  TYPE_INT64,
+  TYPE_UINT64,
+#endif
+  TYPE_DOUBLE,
+#ifdef HAVE_LONG_DOUBLE
+  TYPE_LONGDOUBLE,
+#endif
+  TYPE_CHAR,
+#ifdef HAVE_WINT_T
+  TYPE_WIDE_CHAR,
+#endif
+  TYPE_STRING,
+#ifdef HAVE_WCHAR_T
+  TYPE_WIDE_STRING,
+#endif
+  TYPE_POINTER,
+  TYPE_POINTER_EXT,
+  TYPE_COUNT_SCHAR_POINTER,
+  TYPE_COUNT_SHORT_POINTER,
+  TYPE_COUNT_INT_POINTER,
+  TYPE_COUNT_LONGINT_POINTER
+#ifdef HAVE_LONG_LONG
+, TYPE_COUNT_LONGLONGINT_POINTER
+#endif
+} arg_type;
+
+/* Polymorphic argument */
+typedef struct
+{
+  arg_type type;
+  union
+  {
+    signed char			a_schar;
+    unsigned char		a_uchar;
+    short			a_short;
+    unsigned short		a_ushort;
+    int				a_int;
+    unsigned int		a_uint;
+    long int			a_longint;
+    unsigned long int		a_ulongint;
+#ifdef HAVE_LONG_LONG
+    long long int		a_longlongint;
+    unsigned long long int	a_ulonglongint;
+#endif
+#ifdef HAVE_INT64_AND_I64
+    __int64                     a_int64;
+    unsigned __int64            a_uint64;
+#endif
+    float			a_float;
+    double			a_double;
+#ifdef HAVE_LONG_DOUBLE
+    long double			a_longdouble;
+#endif
+    int				a_char;
+#ifdef HAVE_WINT_T
+    wint_t			a_wide_char;
+#endif
+    const char*			a_string;
+#ifdef HAVE_WCHAR_T
+    const wchar_t*		a_wide_string;
+#endif
+    void*			a_pointer;
+    signed char *		a_count_schar_pointer;
+    short *			a_count_short_pointer;
+    int *			a_count_int_pointer;
+    long int *			a_count_longint_pointer;
+#ifdef HAVE_LONG_LONG
+    long long int *		a_count_longlongint_pointer;
+#endif
+  }
+  a;
+
+  /* string to replace pointer argument with for TYPE_POINTER_EXT */
+  char *ext_string;
+}
+argument;
+
+typedef struct
+{
+  unsigned int count;
+  argument *arg;
+}
+arguments;
+
+
+/* Fetch the arguments, putting them into a. */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int printf_fetchargs (va_list args, arguments *a);
+
+#endif /* _PRINTF_ARGS_H */
diff --git a/gst/printf/printf-extension.c b/gst/printf/printf-extension.c
new file mode 100644
index 0000000..bf98c97
--- /dev/null
+++ b/gst/printf/printf-extension.c
@@ -0,0 +1,50 @@
+/* GStreamer printf extension hooks
+ * Copyright (C) 2013 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "printf-extension.h"
+#include "gst-printf.h"
+#include <stdio.h>
+#include <string.h>
+
+static PrintfPointerExtensionFunc ptr_ext_func; /* NULL */
+
+void
+__gst_printf_pointer_extension_set_func (PrintfPointerExtensionFunc func)
+{
+  /* since this is internal, we don't need to worry about thread-safety */
+  ptr_ext_func = func;
+}
+
+char *
+__gst_printf_pointer_extension_serialize (const char *format, void *ptr)
+{
+  char *buf;
+
+  if (ptr_ext_func == NULL) {
+    buf = malloc (32);
+    memset (buf, 0, 32);
+    sprintf (buf, "%p", ptr);
+  } else {
+    /* note: we map malloc/free to g_malloc/g_free in gst-printf.h, so the
+     * fact that gstinfo gives us a glib-allocated string and the printf
+     * routines free it with free() and not g_free() should not be a problem */
+    buf = ptr_ext_func (format, ptr);
+  }
+  return buf;
+}
diff --git a/gst/printf/printf-extension.h b/gst/printf/printf-extension.h
new file mode 100644
index 0000000..b103a1a
--- /dev/null
+++ b/gst/printf/printf-extension.h
@@ -0,0 +1,31 @@
+/* GStreamer printf extension hooks
+ * Copyright (C) 2013 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_PRINTF_EXTENSION_H_INCLUDED__
+#define __GST_PRINTF_EXTENSION_H_INCLUDED__
+
+typedef char * (*PrintfPointerExtensionFunc) (const char * format, void * ptr);
+
+/* we only need one global function, since it's only GstInfo registering extensions */
+void   __gst_printf_pointer_extension_set_func  (PrintfPointerExtensionFunc func);
+
+/* functions for internal printf implementation to handle the extensions */
+char * __gst_printf_pointer_extension_serialize (const char * format, void * ptr);
+
+#endif /* __GST_PRINTF_EXTENSION_H_INCLUDED__ */
diff --git a/gst/printf/printf-parse.c b/gst/printf/printf-parse.c
new file mode 100644
index 0000000..5d60448
--- /dev/null
+++ b/gst/printf/printf-parse.c
@@ -0,0 +1,477 @@
+/* Formatted output to strings.
+   Copyright (C) 1999-2000, 2002-2003 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; 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-printf.h"
+
+/* Specification.  */
+#include "printf-parse.h"
+
+/* Get size_t, NULL.  */
+#include <stddef.h>
+
+/* Get intmax_t.  */
+#ifdef HAVE_STDINT_H_WITH_UINTMAX
+# include <stdint.h>
+#endif
+#ifdef HAVE_INTTYPES_H_WITH_UINTMAX
+# include <inttypes.h>
+#endif
+
+/* malloc(), realloc(), free().  */
+#include <stdlib.h>
+
+#ifdef STATIC
+STATIC
+#endif
+    int
+printf_parse (const char *format, char_directives * d, arguments * a)
+{
+  const char *cp = format;      /* pointer into format */
+  int arg_posn = 0;             /* number of regular arguments consumed */
+  unsigned int d_allocated;     /* allocated elements of d->dir */
+  unsigned int a_allocated;     /* allocated elements of a->arg */
+  unsigned int max_width_length = 0;
+  unsigned int max_precision_length = 0;
+
+  d->count = 0;
+  d_allocated = 1;
+  d->dir = malloc (d_allocated * sizeof (char_directive));
+  if (d->dir == NULL)
+    /* Out of memory.  */
+    return -1;
+
+  a->count = 0;
+  a_allocated = 0;
+  a->arg = NULL;
+
+#define REGISTER_ARG(_index_,_type_) \
+  {									\
+    unsigned int n = (_index_);						\
+    if (n >= a_allocated)						\
+      {									\
+	argument *memory;						\
+	a_allocated = 2 * a_allocated;					\
+	if (a_allocated <= n)						\
+	  a_allocated = n + 1;						\
+	memory = (a->arg						\
+		  ? realloc (a->arg, a_allocated * sizeof (argument))	\
+		  : malloc (a_allocated * sizeof (argument)));		\
+	if (memory == NULL)						\
+	  /* Out of memory.  */						\
+	  goto error;							\
+	a->arg = memory;						\
+      }									\
+    while (a->count <= n) {                             \
+      a->arg[a->count].type = TYPE_NONE;                \
+      a->arg[a->count].ext_string = (char *) 0;         \
+      ++a->count;                                       \
+    }                                                   \
+    if (a->arg[n].type == TYPE_NONE)					\
+      a->arg[n].type = (_type_);					\
+    else if (a->arg[n].type != (_type_))				\
+      /* Ambiguous type for positional argument.  */			\
+      goto error;							\
+  }
+
+  while (*cp != '\0') {
+    char c = *cp++;
+    if (c == '%') {
+      int arg_index = -1;
+      char_directive *dp = &d->dir[d->count];   /* pointer to next directive */
+
+      /* Initialize the next directive.  */
+      dp->dir_start = cp - 1;
+      dp->flags = 0;
+      dp->width_start = NULL;
+      dp->width_end = NULL;
+      dp->width_arg_index = -1;
+      dp->precision_start = NULL;
+      dp->precision_end = NULL;
+      dp->precision_arg_index = -1;
+      dp->arg_index = -1;
+
+      /* Test for positional argument.  */
+      if (*cp >= '0' && *cp <= '9') {
+        const char *np;
+
+        for (np = cp; *np >= '0' && *np <= '9'; np++);
+        if (*np == '$') {
+          unsigned int n = 0;
+
+          for (np = cp; *np >= '0' && *np <= '9'; np++)
+            n = 10 * n + (*np - '0');
+          if (n == 0)
+            /* Positional argument 0.  */
+            goto error;
+          arg_index = n - 1;
+          cp = np + 1;
+        }
+      }
+
+      /* Read the flags.  */
+      for (;;) {
+        if (*cp == '\'') {
+          dp->flags |= FLAG_GROUP;
+          cp++;
+        } else if (*cp == '-') {
+          dp->flags |= FLAG_LEFT;
+          cp++;
+        } else if (*cp == '+') {
+          dp->flags |= FLAG_SHOWSIGN;
+          cp++;
+        } else if (*cp == ' ') {
+          dp->flags |= FLAG_SPACE;
+          cp++;
+        } else if (*cp == '#') {
+          dp->flags |= FLAG_ALT;
+          cp++;
+        } else if (*cp == '0') {
+          dp->flags |= FLAG_ZERO;
+          cp++;
+        } else
+          break;
+      }
+
+      /* Parse the field width.  */
+      if (*cp == '*') {
+        dp->width_start = cp;
+        cp++;
+        dp->width_end = cp;
+        if (max_width_length < 1)
+          max_width_length = 1;
+
+        /* Test for positional argument.  */
+        if (*cp >= '0' && *cp <= '9') {
+          const char *np;
+
+          for (np = cp; *np >= '0' && *np <= '9'; np++);
+          if (*np == '$') {
+            unsigned int n = 0;
+
+            for (np = cp; *np >= '0' && *np <= '9'; np++)
+              n = 10 * n + (*np - '0');
+            if (n == 0)
+              /* Positional argument 0.  */
+              goto error;
+            dp->width_arg_index = n - 1;
+            cp = np + 1;
+          }
+        }
+        if (dp->width_arg_index < 0)
+          dp->width_arg_index = arg_posn++;
+        REGISTER_ARG (dp->width_arg_index, TYPE_INT);
+      } else if (*cp >= '0' && *cp <= '9') {
+        unsigned int width_length;
+
+        dp->width_start = cp;
+        for (; *cp >= '0' && *cp <= '9'; cp++);
+        dp->width_end = cp;
+        width_length = dp->width_end - dp->width_start;
+        if (max_width_length < width_length)
+          max_width_length = width_length;
+      }
+
+      /* Parse the precision.  */
+      if (*cp == '.') {
+        cp++;
+        if (*cp == '*') {
+          dp->precision_start = cp - 1;
+          cp++;
+          dp->precision_end = cp;
+          if (max_precision_length < 2)
+            max_precision_length = 2;
+
+          /* Test for positional argument.  */
+          if (*cp >= '0' && *cp <= '9') {
+            const char *np;
+
+            for (np = cp; *np >= '0' && *np <= '9'; np++);
+            if (*np == '$') {
+              unsigned int n = 0;
+
+              for (np = cp; *np >= '0' && *np <= '9'; np++)
+                n = 10 * n + (*np - '0');
+              if (n == 0)
+                /* Positional argument 0.  */
+                goto error;
+              dp->precision_arg_index = n - 1;
+              cp = np + 1;
+            }
+          }
+          if (dp->precision_arg_index < 0)
+            dp->precision_arg_index = arg_posn++;
+          REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
+        } else {
+          unsigned int precision_length;
+
+          dp->precision_start = cp - 1;
+          for (; *cp >= '0' && *cp <= '9'; cp++);
+          dp->precision_end = cp;
+          precision_length = dp->precision_end - dp->precision_start;
+          if (max_precision_length < precision_length)
+            max_precision_length = precision_length;
+        }
+      }
+
+      {
+        arg_type type;
+
+        /* Parse argument type/size specifiers.  */
+        {
+          int flags = 0;
+
+          for (;;) {
+            if (*cp == 'h') {
+              flags |= (1 << (flags & 1));
+              cp++;
+            } else if (*cp == 'L') {
+              flags |= 4;
+              cp++;
+            } else if (*cp == 'l') {
+              flags += 8;
+              cp++;
+            }
+#ifdef HAVE_INT64_AND_I64
+            else if (cp[0] == 'I' && cp[1] == '6' && cp[2] == '4') {
+              flags = 64;
+              cp += 3;
+            }
+#endif
+#ifdef HAVE_INTMAX_T
+            else if (*cp == 'j') {
+              if (sizeof (intmax_t) > sizeof (long)) {
+                /* intmax_t = long long */
+                flags += 16;
+              } else if (sizeof (intmax_t) > sizeof (int)) {
+                /* intmax_t = long */
+                flags += 8;
+              }
+              cp++;
+            }
+#endif
+            else if (*cp == 'z' || *cp == 'Z') {
+              /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
+                 because the warning facility in gcc-2.95.2 understands
+                 only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784).  */
+              if (sizeof (size_t) > sizeof (long)) {
+                /* size_t = long long */
+                flags += 16;
+              } else if (sizeof (size_t) > sizeof (int)) {
+                /* size_t = long */
+                flags += 8;
+              }
+              cp++;
+            } else if (*cp == 't') {
+              if (sizeof (ptrdiff_t) > sizeof (long)) {
+                /* ptrdiff_t = long long */
+                flags += 16;
+              } else if (sizeof (ptrdiff_t) > sizeof (int)) {
+                /* ptrdiff_t = long */
+                flags += 8;
+              }
+              cp++;
+            } else
+              break;
+          }
+
+          /* Read the conversion character.  */
+          c = *cp++;
+          switch (c) {
+            case 'd':
+            case 'i':
+#ifdef HAVE_INT64_AND_I64
+              if (flags == 64)
+                type = TYPE_INT64;
+              else
+#endif
+#ifdef HAVE_LONG_LONG
+              if (flags >= 16 || (flags & 4))
+                type = TYPE_LONGLONGINT;
+              else
+#endif
+              if (flags >= 8)
+                type = TYPE_LONGINT;
+              else if (flags & 2)
+                type = TYPE_SCHAR;
+              else if (flags & 1)
+                type = TYPE_SHORT;
+              else
+                type = TYPE_INT;
+              break;
+            case 'o':
+            case 'u':
+            case 'x':
+            case 'X':
+#ifdef HAVE_INT64_AND_I64
+              if (flags == 64)
+                type = TYPE_UINT64;
+              else
+#endif
+#ifdef HAVE_LONG_LONG
+              if (flags >= 16 || (flags & 4))
+                type = TYPE_ULONGLONGINT;
+              else
+#endif
+              if (flags >= 8)
+                type = TYPE_ULONGINT;
+              else if (flags & 2)
+                type = TYPE_UCHAR;
+              else if (flags & 1)
+                type = TYPE_USHORT;
+              else
+                type = TYPE_UINT;
+              break;
+            case 'f':
+            case 'F':
+            case 'e':
+            case 'E':
+            case 'g':
+            case 'G':
+            case 'a':
+            case 'A':
+#ifdef HAVE_LONG_DOUBLE
+              if (flags >= 16 || (flags & 4))
+                type = TYPE_LONGDOUBLE;
+              else
+#endif
+                type = TYPE_DOUBLE;
+              break;
+            case 'c':
+              if (flags >= 8)
+#ifdef HAVE_WINT_T
+                type = TYPE_WIDE_CHAR;
+#else
+                goto error;
+#endif
+              else
+                type = TYPE_CHAR;
+              break;
+#ifdef HAVE_WINT_T
+            case 'C':
+              type = TYPE_WIDE_CHAR;
+              c = 'c';
+              break;
+#endif
+            case 's':
+              if (flags >= 8)
+#ifdef HAVE_WCHAR_T
+                type = TYPE_WIDE_STRING;
+#else
+                goto error;
+#endif
+              else
+                type = TYPE_STRING;
+              break;
+#ifdef HAVE_WCHAR_T
+            case 'S':
+              type = TYPE_WIDE_STRING;
+              c = 's';
+              break;
+#endif
+              /* Old GST_PTR_FORMAT, handle for binary backwards compatibility */
+            case 'P':
+              type = TYPE_POINTER_EXT;
+              dp->flags |= FLAG_PTR_EXT;
+              dp->ptr_ext_char = 'A';
+              c = 'p';
+              break;
+            case 'p':
+              /* Note: cp points already to the char after the 'p' now */
+              if (cp[0] == POINTER_EXT_SIGNIFIER_CHAR && cp[1] != '\0') {
+                type = TYPE_POINTER_EXT;
+                dp->flags |= FLAG_PTR_EXT;
+                dp->ptr_ext_char = cp[1];
+                cp += 2;
+                /* we do not use dp->conversion='s' on purpose here, so we
+                 * can fall back to printing just the pointer with %p if the
+                 * serialisation function returned NULL for some reason */
+              } else {
+                type = TYPE_POINTER;
+              }
+              break;
+              /* Old GST_SEGMENT_FORMAT, handle for backwards compatibility */
+            case 'Q':
+              type = TYPE_POINTER_EXT;
+              dp->flags |= FLAG_PTR_EXT;
+              dp->ptr_ext_char = 'B';
+              c = 'p';
+              break;
+            case 'n':
+#ifdef HAVE_LONG_LONG
+              if (flags >= 16 || (flags & 4))
+                type = TYPE_COUNT_LONGLONGINT_POINTER;
+              else
+#endif
+              if (flags >= 8)
+                type = TYPE_COUNT_LONGINT_POINTER;
+              else if (flags & 2)
+                type = TYPE_COUNT_SCHAR_POINTER;
+              else if (flags & 1)
+                type = TYPE_COUNT_SHORT_POINTER;
+              else
+                type = TYPE_COUNT_INT_POINTER;
+              break;
+            case '%':
+              type = TYPE_NONE;
+              break;
+            default:
+              /* Unknown conversion character.  */
+              goto error;
+          }
+        }
+
+        if (type != TYPE_NONE) {
+          dp->arg_index = arg_index;
+          if (dp->arg_index < 0)
+            dp->arg_index = arg_posn++;
+          REGISTER_ARG (dp->arg_index, type);
+        }
+        dp->conversion = c;
+        dp->dir_end = cp;
+      }
+
+      d->count++;
+      if (d->count >= d_allocated) {
+        char_directive *memory;
+
+        d_allocated = 2 * d_allocated;
+        memory = realloc (d->dir, d_allocated * sizeof (char_directive));
+        if (memory == NULL)
+          /* Out of memory.  */
+          goto error;
+        d->dir = memory;
+      }
+    }
+  }
+  d->dir[d->count].dir_start = cp;
+
+  d->max_width_length = max_width_length;
+  d->max_precision_length = max_precision_length;
+  return 0;
+
+error:
+  if (a->arg)
+    free (a->arg);
+  if (d->dir)
+    free (d->dir);
+  return -1;
+}
diff --git a/gst/printf/printf-parse.h b/gst/printf/printf-parse.h
new file mode 100644
index 0000000..96c2462
--- /dev/null
+++ b/gst/printf/printf-parse.h
@@ -0,0 +1,81 @@
+/* Parse printf format string.
+   Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   USA.  */
+
+#ifndef _PRINTF_PARSE_H
+#define _PRINTF_PARSE_H
+
+#include "printf-args.h"
+
+/* Private namespace for gnulib functions */
+#define printf_parse __gst_printf_parse
+
+/* Flags */
+#define FLAG_GROUP	 1	/* ' flag */
+#define FLAG_LEFT	 2	/* - flag */
+#define FLAG_SHOWSIGN	 4	/* + flag */
+#define FLAG_SPACE	 8	/* space flag */
+#define FLAG_ALT	16	/* # flag */
+#define FLAG_ZERO	32
+
+#define FLAG_PTR_EXT 1024
+
+/* A parsed directive.  */
+typedef struct
+{
+  const char* dir_start;
+  const char* dir_end;
+  int flags;
+  const char* width_start;
+  const char* width_end;
+  int width_arg_index;
+  const char* precision_start;
+  const char* precision_end;
+  int precision_arg_index;
+  char conversion; /* d i o u x X f e E g G c s p n U % but not C S */
+  int arg_index;
+
+  /* extension char in case of TYPE_POINTER_EXT. We need to store this so
+   * we can pass it back to __gst_printf_pointer_extension_serialize()
+   * so it knows which pointer extension it is */
+  char ptr_ext_char;
+}
+char_directive;
+
+/* A parsed format string.  */
+typedef struct
+{
+  unsigned int count;
+  char_directive *dir;
+  unsigned int max_width_length;
+  unsigned int max_precision_length;
+}
+char_directives;
+
+
+/* Parses the format string.  Fills in the number N of directives, and fills
+   in directives[0], ..., directives[N-1], and sets directives[N].dir_start
+   to the end of the format string.  Also fills in the arg_type fields of the
+   arguments and the needed count of arguments.  */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int printf_parse (const char *format, char_directives *d, arguments *a);
+
+#endif /* _PRINTF_PARSE_H */
diff --git a/gst/printf/printf.c b/gst/printf/printf.c
new file mode 100644
index 0000000..d2bb373
--- /dev/null
+++ b/gst/printf/printf.c
@@ -0,0 +1,159 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 2003 Matthias Clasen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ */
+
+/*
+ * Modified by the GLib Team and others 2003.  See the AUTHORS
+ * file for a list of people on the GLib Team.  See the ChangeLog
+ * files for a list of changes.  These files are distributed with
+ * GLib at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "gst-printf.h"
+#include "vasnprintf.h"
+#include "printf.h"
+
+#if 0
+int
+__gst_printf (char const *format, ...)
+{
+  va_list args;
+  int retval;
+
+  va_start (args, format);
+  retval = __gst_vprintf (format, args);
+  va_end (args);
+
+  return retval;
+}
+
+int
+__gst_fprintf (FILE * file, char const *format, ...)
+{
+  va_list args;
+  int retval;
+
+  va_start (args, format);
+  retval = __gst_vfprintf (file, format, args);
+  va_end (args);
+
+  return retval;
+}
+
+int
+__gst_sprintf (char *string, char const *format, ...)
+{
+  va_list args;
+  int retval;
+
+  va_start (args, format);
+  retval = __gst_vsprintf (string, format, args);
+  va_end (args);
+
+  return retval;
+}
+
+int
+__gst_snprintf (char *string, size_t n, char const *format, ...)
+{
+  va_list args;
+  int retval;
+
+  va_start (args, format);
+  retval = __gst_vsnprintf (string, n, format, args);
+  va_end (args);
+
+  return retval;
+}
+
+int
+__gst_vprintf (char const *format, va_list args)
+{
+  return __gst_vfprintf (stdout, format, args);
+}
+
+int
+__gst_vfprintf (FILE * file, char const *format, va_list args)
+{
+  char *result;
+  size_t length;
+
+  result = vasnprintf (NULL, &length, format, args);
+  if (result == NULL)
+    return -1;
+
+  fwrite (result, 1, length, file);
+  free (result);
+
+  return length;
+}
+
+int
+__gst_vsprintf (char *string, char const *format, va_list args)
+{
+  char *result;
+  size_t length;
+
+  result = vasnprintf (NULL, &length, format, args);
+  if (result == NULL)
+    return -1;
+
+  memcpy (string, result, length + 1);
+  free (result);
+
+  return length;
+}
+
+int
+__gst_vsnprintf (char *string, size_t n, char const *format, va_list args)
+{
+  char *result;
+  size_t length;
+
+  result = vasnprintf (NULL, &length, format, args);
+  if (result == NULL)
+    return -1;
+
+  if (n > 0) {
+    memcpy (string, result, MIN (length + 1, n));
+    string[n - 1] = 0;
+  }
+
+  free (result);
+
+  return length;
+}
+#endif
+
+int
+__gst_vasprintf (char **result, char const *format, va_list args)
+{
+  size_t length;
+
+  *result = vasnprintf (NULL, &length, format, args);
+  if (*result == NULL)
+    return -1;
+
+  return length;
+}
diff --git a/gst/printf/printf.h b/gst/printf/printf.h
new file mode 100644
index 0000000..18e3cf9
--- /dev/null
+++ b/gst/printf/printf.h
@@ -0,0 +1,64 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 2003  Matthias Clasen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 __GNULIB_PRINTF_H__
+#define __GNULIB_PRINTF_H__
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#if 0
+int __gst_printf    (char const *format,
+                     ...);
+
+int __gst_fprintf   (FILE        *file,
+                     char const *format,
+                     ...);
+
+int __gst_sprintf   (char       *string,
+                     char const *format,
+                     ...);
+
+int __gst_snprintf  (char       *string,
+                     size_t       n,
+                     char const *format,
+                     ...);
+
+int __gst_vprintf   (char const *format,
+                     va_list      args);
+
+int __gst_vfprintf  (FILE        *file,
+                     char const *format,
+                     va_list      args);
+
+int __gst_vsprintf  (char       *string,
+                     char const *format,
+                     va_list      args);
+
+int __gst_vsnprintf (char       *string,
+                     size_t       n,
+                     char const *format,
+                     va_list      args);
+#endif
+
+int __gst_vasprintf (char       **result,
+                     char const *format,
+                     va_list      args);
+
+
+#endif /* __GNULIB_PRINTF_H__ */
diff --git a/gst/printf/vasnprintf.c b/gst/printf/vasnprintf.c
new file mode 100644
index 0000000..7f3d9e2
--- /dev/null
+++ b/gst/printf/vasnprintf.c
@@ -0,0 +1,1031 @@
+/* vsprintf with automatic memory allocation.
+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   USA.  */
+
+#ifndef _WIN32
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+   This must come before <config.h> because <config.h> may include
+   <features.h>, and once <features.h> has been included, it's too late.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE    1
+#endif
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gst-printf.h"
+
+/* Specification.  */
+#include "vasnprintf.h"
+
+#include <stdio.h>              /* snprintf(), sprintf() */
+#include <stdlib.h>             /* abort(), malloc(), realloc(), free() */
+#include <string.h>             /* memcpy(), strlen() */
+#include <errno.h>              /* errno */
+#include <limits.h>             /* CHAR_BIT */
+#include <float.h>              /* DBL_MAX_EXP, LDBL_MAX_EXP */
+#include "printf-parse.h"
+#include "printf-extension.h"
+
+#ifdef HAVE_WCHAR_T
+# ifdef HAVE_WCSLEN
+#  define local_wcslen wcslen
+# else
+   /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
+      a dependency towards this library, here is a local substitute.
+      Define this substitute only once, even if this file is included
+      twice in the same compilation unit.  */
+#  ifndef local_wcslen_defined
+#   define local_wcslen_defined 1
+static size_t
+local_wcslen (const wchar_t * s)
+{
+  const wchar_t *ptr;
+
+  for (ptr = s; *ptr != (wchar_t) 0; ptr++);
+  return ptr - s;
+}
+#  endif
+# endif
+#endif
+
+/* For those losing systems which don't have 'alloca' we have to add
+   some additional code emulating it.  */
+#if defined (alloca) || defined (GLIB_HAVE_ALLOCA_H)
+# define freea(p)               /* nothing */
+#else
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
+
+#ifndef HAVE_LONG_LONG_FORMAT
+static inline int
+print_long_long (char *buf,
+    int len,
+    int width,
+    int precision,
+    unsigned long flags, char conversion, unsigned long long number)
+{
+  int negative = FALSE;
+  char buffer[128];
+  char *bufferend;
+  char *pointer;
+  int base;
+  static const char *upper = "0123456789ABCDEFX";
+  static const char *lower = "0123456789abcdefx";
+  const char *digits;
+  int i;
+  char *p;
+  int count;
+
+#define EMIT(c)           \
+  if (p - buf == len - 1) \
+    {                     \
+      *p++ = '\0';        \
+      return len;         \
+    }                     \
+  else                    \
+    *p++ = c;
+
+  p = buf;
+
+  switch (conversion) {
+    case 'o':
+      base = 8;
+      digits = lower;
+      negative = FALSE;
+      break;
+    case 'x':
+      base = 16;
+      digits = lower;
+      negative = FALSE;
+      break;
+    case 'X':
+      base = 16;
+      digits = upper;
+      negative = FALSE;
+      break;
+    default:
+      base = 10;
+      digits = lower;
+      negative = (long long) number < 0;
+      if (negative)
+        number = -((long long) number);
+      break;
+  }
+
+  /* Build number */
+  pointer = bufferend = &buffer[sizeof (buffer) - 1];
+  *pointer-- = '\0';
+  for (i = 1; i < (int) sizeof (buffer); i++) {
+    *pointer-- = digits[number % base];
+    number /= base;
+    if (number == 0)
+      break;
+  }
+
+  /* Adjust width */
+  width -= (bufferend - pointer) - 1;
+
+  /* Adjust precision */
+  if (precision != -1) {
+    precision -= (bufferend - pointer) - 1;
+    if (precision < 0)
+      precision = 0;
+    flags |= FLAG_ZERO;
+  }
+
+  /* Adjust width further */
+  if (negative || (flags & FLAG_SHOWSIGN) || (flags & FLAG_SPACE))
+    width--;
+  if (flags & FLAG_ALT) {
+    switch (base) {
+      case 16:
+        width -= 2;
+        break;
+      case 8:
+        width--;
+        break;
+      default:
+        break;
+    }
+  }
+
+  /* Output prefixes spaces if needed */
+  if (!((flags & FLAG_LEFT) || ((flags & FLAG_ZERO) && (precision == -1)))) {
+    count = (precision == -1) ? 0 : precision;
+    while (width-- > count)
+      *p++ = ' ';
+  }
+
+  /* width has been adjusted for signs and alternatives */
+  if (negative) {
+    EMIT ('-');
+  } else if (flags & FLAG_SHOWSIGN) {
+    EMIT ('+');
+  } else if (flags & FLAG_SPACE) {
+    EMIT (' ');
+  }
+
+  if (flags & FLAG_ALT) {
+    switch (base) {
+      case 8:
+        EMIT ('0');
+        break;
+      case 16:
+        EMIT ('0');
+        EMIT (digits[16]);
+        break;
+      default:
+        break;
+    }                           /* switch base */
+  }
+
+  /* Output prefixed zero padding if needed */
+  if (flags & FLAG_ZERO) {
+    if (precision == -1)
+      precision = width;
+    while (precision-- > 0) {
+      EMIT ('0');
+      width--;
+    }
+  }
+
+  /* Output the number itself */
+  while (*(++pointer)) {
+    EMIT (*pointer);
+  }
+
+  /* Output trailing spaces if needed */
+  if (flags & FLAG_LEFT) {
+    while (width-- > 0)
+      EMIT (' ');
+  }
+
+  EMIT ('\0');
+
+  return p - buf - 1;
+}
+#endif
+
+static void
+printf_postprocess_args (char_directives * directives, arguments * arguments)
+{
+  int i;
+
+  for (i = 0; i < directives->count; ++i) {
+    char_directive *dp;
+    argument *a;
+
+    dp = &directives->dir[i];
+    a = &arguments->arg[dp->arg_index];
+
+    if (a->type == TYPE_POINTER_EXT) {
+      char fmt[4];
+
+      fmt[0] = 'p';
+      fmt[1] = POINTER_EXT_SIGNIFIER_CHAR;
+      fmt[2] = dp->ptr_ext_char;
+      fmt[3] = '\0';
+
+      a->ext_string =
+          __gst_printf_pointer_extension_serialize (fmt, a->a.a_pointer);
+    }
+  }
+}
+
+char *
+vasnprintf (char *resultbuf, size_t * lengthp, const char *format, va_list args)
+{
+  char_directives d;
+  arguments a;
+
+  if (printf_parse (format, &d, &a) < 0) {
+    errno = EINVAL;
+    return NULL;
+  }
+#define CLEANUP()                         \
+  free (d.dir);                           \
+  if (a.arg) {                            \
+    while (a.count--) {                   \
+      if (a.arg[a.count].ext_string)      \
+        free (a.arg[a.count].ext_string); \
+    }                                     \
+    free (a.arg);                         \
+  }
+
+  if (printf_fetchargs (args, &a) < 0) {
+    CLEANUP ();
+    errno = EINVAL;
+    return NULL;
+  }
+
+  /* collect TYPE_POINTER_EXT argument strings */
+  printf_postprocess_args (&d, &a);
+
+  {
+    char *buf =
+        (char *) alloca (7 + d.max_width_length + d.max_precision_length + 6);
+    const char *cp;
+    unsigned int i;
+    char_directive *dp;
+    /* Output string accumulator.  */
+    char *result;
+    size_t allocated;
+    size_t length;
+
+    if (resultbuf != NULL) {
+      result = resultbuf;
+      allocated = *lengthp;
+    } else {
+      result = NULL;
+      allocated = 0;
+    }
+    length = 0;
+    /* Invariants:
+       result is either == resultbuf or == NULL or malloc-allocated.
+       If length > 0, then result != NULL.  */
+
+#define ENSURE_ALLOCATION(needed) \
+    if ((needed) > allocated)						\
+      {									\
+	char *memory;							\
+									\
+	allocated = (allocated > 0 ? 2 * allocated : 12);		\
+	if ((needed) > allocated)					\
+	  allocated = (needed);						\
+	if (result == resultbuf || result == NULL)			\
+	  memory = (char *) malloc (allocated);				\
+	else								\
+	  memory = (char *) realloc (result, allocated);		\
+									\
+	if (memory == NULL)						\
+	  {								\
+	    if (!(result == resultbuf || result == NULL))		\
+	      free (result);						\
+	    freea (buf);						\
+	    CLEANUP ();							\
+	    errno = ENOMEM;						\
+	    return NULL;						\
+	  }								\
+	if (result == resultbuf && length > 0)				\
+	  memcpy (memory, result, length);				\
+	result = memory;						\
+      }
+
+    for (cp = format, i = 0, dp = &d.dir[0];; cp = dp->dir_end, i++, dp++) {
+      if (cp != dp->dir_start) {
+        size_t n = dp->dir_start - cp;
+
+        ENSURE_ALLOCATION (length + n);
+        memcpy (result + length, cp, n);
+        length += n;
+      }
+      if (i == d.count)
+        break;
+
+      /* Execute a single directive.  */
+      if (dp->conversion == '%') {
+        if (!(dp->arg_index < 0))
+          abort ();
+        ENSURE_ALLOCATION (length + 1);
+        result[length] = '%';
+        length += 1;
+      } else {
+        if (!(dp->arg_index >= 0))
+          abort ();
+
+        if (dp->conversion == 'n') {
+          switch (a.arg[dp->arg_index].type) {
+            case TYPE_COUNT_SCHAR_POINTER:
+              *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
+              break;
+            case TYPE_COUNT_SHORT_POINTER:
+              *a.arg[dp->arg_index].a.a_count_short_pointer = length;
+              break;
+            case TYPE_COUNT_INT_POINTER:
+              *a.arg[dp->arg_index].a.a_count_int_pointer = length;
+              break;
+            case TYPE_COUNT_LONGINT_POINTER:
+              *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
+              break;
+#ifdef HAVE_LONG_LONG
+            case TYPE_COUNT_LONGLONGINT_POINTER:
+              *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
+              break;
+#endif
+            default:
+              abort ();
+          }
+        } else {
+          arg_type type = a.arg[dp->arg_index].type;
+          char *p;
+          unsigned int prefix_count;
+          int prefixes[2];
+#ifndef HAVE_SNPRINTF
+          unsigned int tmp_length;
+          char tmpbuf[700];
+          char *tmp;
+
+          /* Allocate a temporary buffer of sufficient size for calling
+             sprintf.  */
+          {
+            unsigned int width;
+            unsigned int precision;
+
+            width = 0;
+            if (dp->width_start != dp->width_end) {
+              if (dp->width_arg_index >= 0) {
+                int arg;
+
+                if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+                  abort ();
+                arg = a.arg[dp->width_arg_index].a.a_int;
+                width = (arg < 0 ? -arg : arg);
+              } else {
+                const char *digitp = dp->width_start;
+
+                do
+                  width = width * 10 + (*digitp++ - '0');
+                while (digitp != dp->width_end);
+              }
+            }
+
+            precision = 6;
+            if (dp->precision_start != dp->precision_end) {
+              if (dp->precision_arg_index >= 0) {
+                int arg;
+
+                if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+                  abort ();
+                arg = a.arg[dp->precision_arg_index].a.a_int;
+                precision = (arg < 0 ? 0 : arg);
+              } else {
+                const char *digitp = dp->precision_start + 1;
+
+                precision = 0;
+                while (digitp != dp->precision_end)
+                  precision = precision * 10 + (*digitp++ - '0');
+              }
+            }
+
+            switch (dp->conversion) {
+              case 'd':
+              case 'i':
+              case 'u':
+# ifdef HAVE_LONG_LONG
+                if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+                  tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.30103 /* binary -> decimal */
+                      * 2       /* estimate for FLAG_GROUP */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 1;      /* account for leading sign */
+                else
+# endif
+                if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+                  tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.30103      /* binary -> decimal */
+                      * 2       /* estimate for FLAG_GROUP */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 1;      /* account for leading sign */
+                else
+                  tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.30103       /* binary -> decimal */
+                      * 2       /* estimate for FLAG_GROUP */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 1;      /* account for leading sign */
+                break;
+
+              case 'o':
+# ifdef HAVE_LONG_LONG
+                if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+                  tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.333334        /* binary -> octal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 1;      /* account for leading sign */
+                else
+# endif
+                if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+                  tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.333334     /* binary -> octal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 1;      /* account for leading sign */
+                else
+                  tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.333334      /* binary -> octal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 1;      /* account for leading sign */
+                break;
+
+              case 'x':
+              case 'X':
+# ifdef HAVE_LONG_LONG
+                if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+                  tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.25    /* binary -> hexadecimal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 2;      /* account for leading sign or alternate form */
+                else
+# endif
+# ifdef HAVE_INT64_AND_I64
+                if (type == TYPE_INT64 || type == TYPE_UINT64)
+                  tmp_length = (unsigned int) (sizeof (unsigned __int64) * CHAR_BIT * 0.25      /* binary -> hexadecimal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 2;      /* account for leading sign or alternate form */
+                else
+# endif
+                if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+                  tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 2;      /* account for leading sign or alternate form */
+                else
+                  tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.25  /* binary -> hexadecimal */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + 2;      /* account for leading sign or alternate form */
+                break;
+
+              case 'f':
+              case 'F':
+# ifdef HAVE_LONG_DOUBLE
+                if (type == TYPE_LONGDOUBLE)
+                  tmp_length = (unsigned int) (LDBL_MAX_EXP * 0.30103   /* binary -> decimal */
+                      * 2       /* estimate for FLAG_GROUP */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + precision + 10; /* sign, decimal point etc. */
+                else
+# endif
+                  tmp_length = (unsigned int) (DBL_MAX_EXP * 0.30103    /* binary -> decimal */
+                      * 2       /* estimate for FLAG_GROUP */
+                      )
+                      + 1       /* turn floor into ceil */
+                      + precision + 10; /* sign, decimal point etc. */
+                break;
+
+              case 'e':
+              case 'E':
+              case 'g':
+              case 'G':
+              case 'a':
+              case 'A':
+                tmp_length = precision + 12;    /* sign, decimal point, exponent etc. */
+                break;
+
+              case 'c':
+# ifdef HAVE_WINT_T
+                if (type == TYPE_WIDE_CHAR)
+                  tmp_length = MB_CUR_MAX;
+                else
+# endif
+                  tmp_length = 1;
+                break;
+
+              case 's':
+# ifdef HAVE_WCHAR_T
+                if (type == TYPE_WIDE_STRING)
+                  tmp_length = (a.arg[dp->arg_index].a.a_wide_string == NULL ? 6        /* wcslen(L"(null)") */
+                      : local_wcslen (a.arg[dp->arg_index].a.a_wide_string))
+                      * MB_CUR_MAX;
+                else
+# endif
+                  tmp_length = a.arg[dp->arg_index].a.a_string == NULL ? 6      /* strlen("(null)") */
+                      : strlen (a.arg[dp->arg_index].a.a_string);
+                break;
+
+              case 'p':
+                tmp_length = (unsigned int) (sizeof (void *) * CHAR_BIT * 0.25  /* binary -> hexadecimal */
+                    )
+                    + 1         /* turn floor into ceil */
+                    + 2;        /* account for leading 0x */
+
+                /* make sure we always have enough space for a plain %p, so + */
+                if (dp->flags & FLAG_PTR_EXT && a.arg[dp->arg_index].ext_string)
+                  tmp_length += strlen (a.arg[dp->arg_index].ext_string);
+                break;
+
+              default:
+                abort ();
+            }
+
+            if (tmp_length < width)
+              tmp_length = width;
+
+            tmp_length++;       /* account for trailing NUL */
+          }
+
+          if (tmp_length <= sizeof (tmpbuf))
+            tmp = tmpbuf;
+          else {
+            tmp = (char *) malloc (tmp_length);
+            if (tmp == NULL) {
+              /* Out of memory.  */
+              if (!(result == resultbuf || result == NULL))
+                free (result);
+              freea (buf);
+              CLEANUP ();
+              errno = ENOMEM;
+              return NULL;
+            }
+          }
+#endif
+
+          /* Construct the format string for calling snprintf or
+             sprintf.  */
+          p = buf;
+          *p++ = '%';
+          if (dp->flags & FLAG_GROUP)
+            *p++ = '\'';
+          if (dp->flags & FLAG_LEFT)
+            *p++ = '-';
+          if (dp->flags & FLAG_SHOWSIGN)
+            *p++ = '+';
+          if (dp->flags & FLAG_SPACE)
+            *p++ = ' ';
+          if (dp->flags & FLAG_ALT)
+            *p++ = '#';
+          if (dp->flags & FLAG_ZERO)
+            *p++ = '0';
+          if (dp->width_start != dp->width_end) {
+            size_t n = dp->width_end - dp->width_start;
+            memcpy (p, dp->width_start, n);
+            p += n;
+          }
+          if (dp->precision_start != dp->precision_end) {
+            size_t n = dp->precision_end - dp->precision_start;
+            memcpy (p, dp->precision_start, n);
+            p += n;
+          }
+
+          switch (type) {
+#ifdef HAVE_INT64_AND_I64
+            case TYPE_INT64:
+            case TYPE_UINT64:
+              *p++ = 'I';
+              *p++ = '6';
+              *p++ = '4';
+              break;
+#endif
+#ifdef HAVE_LONG_LONG
+            case TYPE_LONGLONGINT:
+            case TYPE_ULONGLONGINT:
+#ifdef HAVE_INT64_AND_I64       /* The system (sn)printf uses %I64. Also assume
+                                 * that long long == __int64.
+                                 */
+              *p++ = 'I';
+              *p++ = '6';
+              *p++ = '4';
+              break;
+#else
+              *p++ = 'l';
+               /*FALLTHROUGH*/
+#endif
+#endif
+            case TYPE_LONGINT:
+            case TYPE_ULONGINT:
+#ifdef HAVE_WINT_T
+            case TYPE_WIDE_CHAR:
+#endif
+#ifdef HAVE_WCHAR_T
+            case TYPE_WIDE_STRING:
+#endif
+              *p++ = 'l';
+              break;
+#ifdef HAVE_LONG_DOUBLE
+            case TYPE_LONGDOUBLE:
+              *p++ = 'L';
+              break;
+#endif
+            default:
+              break;
+          }
+          *p = dp->conversion;
+#ifdef HAVE_SNPRINTF
+          p[1] = '%';
+          p[2] = 'n';
+          p[3] = '\0';
+#else
+          p[1] = '\0';
+#endif
+
+          /* Construct the arguments for calling snprintf or sprintf.  */
+          prefix_count = 0;
+          if (dp->width_arg_index >= 0) {
+            if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+              abort ();
+            prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
+          }
+          if (dp->precision_arg_index >= 0) {
+            if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+              abort ();
+            prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
+          }
+#ifdef HAVE_SNPRINTF
+          /* Prepare checking whether snprintf returns the count
+             via %n.  */
+          ENSURE_ALLOCATION (length + 1);
+          result[length] = '\0';
+#endif
+
+          for (;;) {
+            size_t maxlen;
+            int count;
+#ifdef HAVE_SNPRINTF
+            int retcount;
+#endif
+
+            maxlen = allocated - length;
+            count = -1;
+
+#ifdef HAVE_SNPRINTF
+            retcount = 0;
+
+#define SNPRINTF_BUF(arg) \
+		    switch (prefix_count)				    \
+		      {							    \
+		      case 0:						    \
+			retcount = snprintf (result + length, maxlen, buf,  \
+					     arg, &count);		    \
+			break;						    \
+		      case 1:						    \
+			retcount = snprintf (result + length, maxlen, buf,  \
+					     prefixes[0], arg, &count);	    \
+			break;						    \
+		      case 2:						    \
+			retcount = snprintf (result + length, maxlen, buf,  \
+					     prefixes[0], prefixes[1], arg, \
+					     &count);			    \
+			break;						    \
+		      default:						    \
+			abort ();					    \
+		      }
+#else
+#define SNPRINTF_BUF(arg) \
+		    switch (prefix_count)				    \
+		      {							    \
+		      case 0:						    \
+			count = sprintf (tmp, buf, arg);		    \
+			break;						    \
+		      case 1:						    \
+			count = sprintf (tmp, buf, prefixes[0], arg);	    \
+			break;						    \
+		      case 2:						    \
+			count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
+					 arg);				    \
+			break;						    \
+		      default:						    \
+			abort ();					    \
+		      }
+#endif
+
+            switch (type) {
+              case TYPE_SCHAR:
+              {
+                int arg = a.arg[dp->arg_index].a.a_schar;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_UCHAR:
+              {
+                unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_SHORT:
+              {
+                int arg = a.arg[dp->arg_index].a.a_short;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_USHORT:
+              {
+                unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_INT:
+              {
+                int arg = a.arg[dp->arg_index].a.a_int;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_UINT:
+              {
+                unsigned int arg = a.arg[dp->arg_index].a.a_uint;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_LONGINT:
+              {
+                long int arg = a.arg[dp->arg_index].a.a_longint;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_ULONGINT:
+              {
+                unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#ifdef HAVE_INT64_AND_I64
+              case TYPE_INT64:
+              {
+                __int64 arg = a.arg[dp->arg_index].a.a_int64;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_UINT64:
+              {
+                unsigned __int64 arg = a.arg[dp->arg_index].a.a_uint64;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#endif
+#ifdef HAVE_LONG_LONG
+#ifndef HAVE_LONG_LONG_FORMAT
+              case TYPE_LONGLONGINT:
+              case TYPE_ULONGLONGINT:
+              {
+                unsigned long long int arg =
+                    a.arg[dp->arg_index].a.a_ulonglongint;
+                int width;
+                int precision;
+
+                width = 0;
+                if (dp->width_start != dp->width_end) {
+                  if (dp->width_arg_index >= 0) {
+                    int arg;
+
+                    if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+                      abort ();
+                    arg = a.arg[dp->width_arg_index].a.a_int;
+                    width = (arg < 0 ? -arg : arg);
+                  } else {
+                    const char *digitp = dp->width_start;
+
+                    do
+                      width = width * 10 + (*digitp++ - '0');
+                    while (digitp != dp->width_end);
+                  }
+                }
+
+                precision = -1;
+                if (dp->precision_start != dp->precision_end) {
+                  if (dp->precision_arg_index >= 0) {
+                    int arg;
+
+                    if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+                      abort ();
+                    arg = a.arg[dp->precision_arg_index].a.a_int;
+                    precision = (arg < 0 ? 0 : arg);
+                  } else {
+                    const char *digitp = dp->precision_start + 1;
+
+                    precision = 0;
+                    do
+                      precision = precision * 10 + (*digitp++ - '0');
+                    while (digitp != dp->precision_end);
+                  }
+                }
+#ifdef HAVE_SNPRINTF
+                count = print_long_long (result + length, maxlen,
+                    width, precision, dp->flags, dp->conversion, arg);
+#else
+                count = print_long_long (tmp, tmp_length,
+                    width, precision, dp->flags, dp->conversion, arg);
+#endif
+              }
+                break;
+#else
+              case TYPE_LONGLONGINT:
+              {
+                long long int arg = a.arg[dp->arg_index].a.a_longlongint;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_ULONGLONGINT:
+              {
+                unsigned long long int arg =
+                    a.arg[dp->arg_index].a.a_ulonglongint;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#endif
+#endif
+              case TYPE_DOUBLE:
+              {
+                double arg = a.arg[dp->arg_index].a.a_double;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#ifdef HAVE_LONG_DOUBLE
+              case TYPE_LONGDOUBLE:
+              {
+                long double arg = a.arg[dp->arg_index].a.a_longdouble;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#endif
+              case TYPE_CHAR:
+              {
+                int arg = a.arg[dp->arg_index].a.a_char;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#ifdef HAVE_WINT_T
+              case TYPE_WIDE_CHAR:
+              {
+                wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#endif
+              case TYPE_STRING:
+              {
+                const char *arg = a.arg[dp->arg_index].a.a_string == NULL
+                    ? "(null)" : a.arg[dp->arg_index].a.a_string;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#ifdef HAVE_WCHAR_T
+              case TYPE_WIDE_STRING:
+              {
+                const wchar_t *arg =
+                    a.arg[dp->arg_index].a.a_wide_string ==
+                    NULL ? L"(null)" : a.arg[dp->arg_index].a.a_wide_string;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+#endif
+              case TYPE_POINTER:
+              {
+                void *arg = a.arg[dp->arg_index].a.a_pointer;
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              case TYPE_POINTER_EXT:
+              {
+                void *arg = a.arg[dp->arg_index].a.a_pointer;
+
+                if (a.arg[dp->arg_index].ext_string != NULL) {
+                  arg = a.arg[dp->arg_index].ext_string;
+                  *p = 's';
+                }
+
+                SNPRINTF_BUF (arg);
+              }
+                break;
+              default:
+                abort ();
+            }
+
+#ifdef HAVE_SNPRINTF
+            /* Portability: Not all implementations of snprintf()
+               are ISO C 99 compliant.  Determine the number of
+               bytes that snprintf() has produced or would have
+               produced.  */
+            if (count >= 0) {
+              /* Verify that snprintf() has NUL-terminated its
+                 result.  */
+              if (count < maxlen && result[length + count] != '\0')
+                abort ();
+              /* Portability hack.  */
+              if (retcount > count)
+                count = retcount;
+            } else {
+              /* snprintf() doesn't understand the '%n'
+                 directive.  */
+              if (p[1] != '\0') {
+                /* Don't use the '%n' directive; instead, look
+                   at the snprintf() return value.  */
+                p[1] = '\0';
+                continue;
+              }
+              count = retcount;
+            }
+#endif
+
+            /* Attempt to handle failure.  */
+            if (count < 0) {
+              if (!(result == resultbuf || result == NULL))
+                free (result);
+              freea (buf);
+              CLEANUP ();
+              errno = EINVAL;
+              return NULL;
+            }
+#ifndef HAVE_SNPRINTF
+            if (count >= tmp_length)
+              /* tmp_length was incorrectly calculated - fix the
+                 code above!  */
+              abort ();
+#endif
+
+            /* Make room for the result.  */
+            if (count >= maxlen) {
+              /* Need at least count bytes.  But allocate
+                 proportionally, to avoid looping eternally if
+                 snprintf() reports a too small count.  */
+              size_t n = length + count;
+
+              if (n < 2 * allocated)
+                n = 2 * allocated;
+
+              ENSURE_ALLOCATION (n);
+#ifdef HAVE_SNPRINTF
+              continue;
+#endif
+            }
+#ifdef HAVE_SNPRINTF
+            /* The snprintf() result did fit.  */
+#else
+            /* Append the sprintf() result.  */
+            memcpy (result + length, tmp, count);
+            if (tmp != tmpbuf)
+              free (tmp);
+#endif
+
+            length += count;
+            break;
+          }
+        }
+      }
+    }
+
+    /* Add the final NUL.  */
+    ENSURE_ALLOCATION (length + 1);
+    result[length] = '\0';
+
+    if (result != resultbuf && length + 1 < allocated) {
+      /* Shrink the allocated memory if possible.  */
+      char *memory;
+
+      memory = (char *) realloc (result, length + 1);
+      if (memory != NULL)
+        result = memory;
+    }
+
+    freea (buf);
+    CLEANUP ();
+    *lengthp = length;
+    return result;
+  }
+}
diff --git a/gst/printf/vasnprintf.h b/gst/printf/vasnprintf.h
new file mode 100644
index 0000000..4920cff
--- /dev/null
+++ b/gst/printf/vasnprintf.h
@@ -0,0 +1,61 @@
+/* vsprintf with automatic memory allocation.
+   Copyright (C) 2002-2003 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   USA.  */
+
+#ifndef _VASNPRINTF_H
+#define _VASNPRINTF_H
+
+/* Get va_list.  */
+#include <stdarg.h>
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || defined (__STRICT_ANSI__)
+#  define __attribute__(Spec) /* empty */
+# endif
+/* The __-protected variants of `format' and `printf' attributes
+   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#  define __format__ format
+#  define __printf__ printf
+# endif
+#endif
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/* Write formatted output to a string dynamically allocated with malloc().
+   You can pass a preallocated buffer for the result in RESULTBUF and its
+   size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
+   If successful, return the address of the string (this may be = RESULTBUF
+   if no dynamic memory allocation was necessary) and set *LENGTHP to the
+   number of resulting bytes, excluding the trailing NUL.  Upon error, set
+   errno and return NULL.  */
+extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+       __attribute__ ((__format__ (__printf__, 3, 4)));
+extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
+       __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif /* _VASNPRINTF_H */
diff --git a/gstreamer.doap b/gstreamer.doap
index 154e189..a86bf98 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,61 +40,21 @@
 
  <release>
   <Version>
-   <revision>1.0.8</revision>
-   <branch>1.0</branch>
+   <revision>1.1.2</revision>
+   <branch>1.1</branch>
    <name></name>
    <created>2013-07-11</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.0.8.tar.xz" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.1.2.tar.xz" />
   </Version>
  </release>
 
  <release>
   <Version>
-   <revision>1.0.7</revision>
-   <branch>1.0</branch>
+   <revision>1.1.1</revision>
+   <branch>1.1</branch>
    <name></name>
-   <created>2013-04-26</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.0.7.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.6</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-03-22</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.0.6.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.5</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-01-08</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.0.5.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.4</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2012-12-18</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.0.4.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.3</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2012-11-21</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.0.3.tar.xz" />
+   <created>2013-06-05</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.1.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gstreamer.spec b/gstreamer.spec
index 7d02de8..d8aaaea 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -4,7 +4,7 @@
 %define 	_glib2		2.32.0
 
 Name: 		%{gstreamer}
-Version: 	1.0.8
+Version: 	1.1.2
 Release: 	1
 Summary: 	GStreamer streaming media framework runtime
 
@@ -33,8 +33,6 @@
 BuildRequires:  docbook-style-dsssl
 BuildRequires:  docbook-style-xsl
 BuildRequires:  docbook-utils
-BuildRequires:	transfig
-BuildRequires:  xfig
 BuildRequires:  netpbm-progs
 BuildRequires:  tetex-dvips
 BuildRequires:  ghostscript
diff --git a/gstreamer.spec.in b/gstreamer.spec.in
index 0b786ea..ed6f490 100644
--- a/gstreamer.spec.in
+++ b/gstreamer.spec.in
@@ -33,8 +33,6 @@
 BuildRequires:  docbook-style-dsssl
 BuildRequires:  docbook-style-xsl
 BuildRequires:  docbook-utils
-BuildRequires:	transfig
-BuildRequires:  xfig
 BuildRequires:  netpbm-progs
 BuildRequires:  tetex-dvips
 BuildRequires:  ghostscript
diff --git a/libs/Makefile.in b/libs/Makefile.in
index 6fca600..bd7a5c8 100644
--- a/libs/Makefile.in
+++ b/libs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = libs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,33 +109,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -247,15 +302,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -265,11 +316,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -277,6 +326,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -339,6 +389,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -471,22 +522,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -501,57 +555,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -567,12 +576,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -584,15 +588,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -601,6 +601,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -761,22 +776,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 Android.mk: Makefile.am
diff --git a/libs/gst/Makefile.in b/libs/gst/Makefile.in
index 08c8aef..20ca40a 100644
--- a/libs/gst/Makefile.in
+++ b/libs/gst/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = libs/gst
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,33 +109,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -246,15 +301,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -264,11 +315,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -276,6 +325,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -338,6 +388,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -476,22 +527,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -506,57 +560,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -572,12 +581,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -589,15 +593,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -606,6 +606,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -766,22 +781,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 Android.mk: Makefile.am
diff --git a/libs/gst/base/Makefile.am b/libs/gst/base/Makefile.am
index ca7d4c8..076dc02 100644
--- a/libs/gst/base/Makefile.am
+++ b/libs/gst/base/Makefile.am
@@ -12,7 +12,9 @@
 	gstbytereader.c		\
 	gstbytewriter.c         \
 	gstcollectpads.c	\
+	gstdataqueue.c		\
 	gstpushsrc.c		\
+	gstqueuearray.c		\
 	gsttypefindhelper.c
 
 libgstbase_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS)
@@ -23,6 +25,7 @@
 	$(includedir)/gstreamer-@GST_API_VERSION@/gst/base
 
 libgstbase_@GST_API_VERSION@include_HEADERS =	\
+	base.h			\
 	gstadapter.h		\
 	gstbaseparse.h		\
 	gstbasesink.h		\
@@ -32,7 +35,9 @@
 	gstbytereader.h		\
 	gstbytewriter.h         \
 	gstcollectpads.h	\
+	gstdataqueue.h		\
 	gstpushsrc.h		\
+	gstqueuearray.h		\
 	gsttypefindhelper.h
 
 noinst_HEADERS = \
@@ -67,11 +72,10 @@
 
 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_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 \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstBase \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
@@ -80,10 +84,9 @@
 		-I$(top_srcdir)/libs \
 		-I$(top_builddir) \
 		-I$(top_builddir)/libs \
-		$(gir_cincludes) \
+		--c-include "gst/base/base.h" \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
 		--library=libgstbase-@GST_API_VERSION@.la \
 		--include=Gst-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
diff --git a/libs/gst/base/Makefile.in b/libs/gst/base/Makefile.in
index f932360..9675a87 100644
--- a/libs/gst/base/Makefile.in
+++ b/libs/gst/base/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,16 @@
 target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/base
-DIST_COMMON = README $(libgstbase_@GST_API_VERSION@include_HEADERS) \
-	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstbase_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS) README
 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 \
@@ -88,12 +116,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -142,17 +172,32 @@
 	libgstbase_@GST_API_VERSION@_la-gstbytereader.lo \
 	libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo \
 	libgstbase_@GST_API_VERSION@_la-gstcollectpads.lo \
+	libgstbase_@GST_API_VERSION@_la-gstdataqueue.lo \
 	libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo \
+	libgstbase_@GST_API_VERSION@_la-gstqueuearray.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
+am__v_lt_1 = 
 libgstbase_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstbase_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -165,20 +210,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstbase_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstbase_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -189,6 +230,23 @@
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstbase_@GST_API_VERSION@include_HEADERS) \
 	$(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -290,15 +348,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -308,11 +362,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -320,6 +372,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -382,6 +435,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -486,7 +540,9 @@
 	gstbytereader.c		\
 	gstbytewriter.c         \
 	gstcollectpads.c	\
+	gstdataqueue.c		\
 	gstpushsrc.c		\
+	gstqueuearray.c		\
 	gsttypefindhelper.c
 
 libgstbase_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS)
@@ -496,6 +552,7 @@
 	$(includedir)/gstreamer-@GST_API_VERSION@/gst/base
 
 libgstbase_@GST_API_VERSION@include_HEADERS = \
+	base.h			\
 	gstadapter.h		\
 	gstbaseparse.h		\
 	gstbasesink.h		\
@@ -505,7 +562,9 @@
 	gstbytereader.h		\
 	gstbytewriter.h         \
 	gstcollectpads.h	\
+	gstdataqueue.h		\
 	gstpushsrc.h		\
+	gstqueuearray.h		\
 	gsttypefindhelper.h
 
 noinst_HEADERS = \
@@ -519,7 +578,6 @@
 @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.
@@ -561,6 +619,7 @@
 $(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)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -587,12 +646,15 @@
 
 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
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -611,7 +673,9 @@
 @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-gstcollectpads.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstdataqueue.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-gstqueuearray.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.Plo@am__quote@
 
 .c.o:
@@ -698,6 +762,13 @@
 @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) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstcollectpads.lo `test -f 'gstcollectpads.c' || echo '$(srcdir)/'`gstcollectpads.c
 
+libgstbase_@GST_API_VERSION@_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_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstdataqueue.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstdataqueue.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstdataqueue.lo `test -f 'gstdataqueue.c' || echo '$(srcdir)/'`gstdataqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstdataqueue.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstdataqueue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdataqueue.c' object='libgstbase_@GST_API_VERSION@_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 $(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-gstdataqueue.lo `test -f 'gstdataqueue.c' || echo '$(srcdir)/'`gstdataqueue.c
+
 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
@@ -705,6 +776,13 @@
 @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) $(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_API_VERSION@_la-gstqueuearray.lo: gstqueuearray.c
+@am__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-gstqueuearray.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstqueuearray.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstqueuearray.lo `test -f 'gstqueuearray.c' || echo '$(srcdir)/'`gstqueuearray.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstqueuearray.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstqueuearray.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqueuearray.c' object='libgstbase_@GST_API_VERSION@_la-gstqueuearray.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) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstqueuearray.lo `test -f 'gstqueuearray.c' || echo '$(srcdir)/'`gstqueuearray.c
+
 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
@@ -781,26 +859,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
 
-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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -812,15 +879,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -829,6 +892,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -978,21 +1056,21 @@
 
 .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-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am 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-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
 	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 \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstbase_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
@@ -1017,7 +1095,7 @@
 
 @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@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstBase \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
@@ -1026,10 +1104,9 @@
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir) \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/libs \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/base/base.h" \
 @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_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" \
diff --git a/libs/gst/base/base.h b/libs/gst/base/base.h
new file mode 100644
index 0000000..e741145
--- /dev/null
+++ b/libs/gst/base/base.h
@@ -0,0 +1,39 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * base.h: single include header for gst-base library
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_BASE_H__
+#define __GST_BASE_H__
+
+#include <gst/base/gstadapter.h>
+#include <gst/base/gstbaseparse.h>
+#include <gst/base/gstbasesink.h>
+#include <gst/base/gstbasesrc.h>
+#include <gst/base/gstbasetransform.h>
+#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/gstpushsrc.h>
+#include <gst/base/gstqueuearray.h>
+#include <gst/base/gsttypefindhelper.h>
+
+#endif /* __GST_BASE_H__ */
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index 5a15e68..935fa20 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -83,12 +83,14 @@
  *
  * 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 gst_adapter_prev_timestamp(). This function can
- * optionally return the amount of bytes between the start of the buffer that
+ * can be queried with gst_adapter_prev_pts(). This function can
+ * optionally return the number 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
  * you to calculate the timestamp of the current adapter position by using the
- * last seen timestamp and the amount of bytes since.
+ * last seen timestamp and the amount of bytes since.  Additionally, the
+ * gst_adapter_prev_pts_at_offset() can be used to determine the last
+ * seen timestamp at a particular offset in the adapter.
  *
  * A last thing to note is that while GstAdapter is pretty optimized,
  * merging buffers still might be an operation that requires a malloc() and
@@ -949,6 +951,104 @@
 }
 
 /**
+ * gst_adapter_prev_pts_at_offset:
+ * @adapter: a #GstAdapter
+ * @offset: the offset in the adapter at which to get timestamp
+ * @distance: (out) (allow-none): pointer to location for distance, or NULL
+ *
+ * Get the pts that was before the byte at offset @offset in the adapter. When
+ * @distance is given, the amount of bytes between the pts and the current
+ * position is returned.
+ *
+ * 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 pts is removed from the adapter, the pts
+ * and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.
+ *
+ * Since: 1.2
+ * Returns: The previously seen pts at given offset.
+ */
+GstClockTime
+gst_adapter_prev_pts_at_offset (GstAdapter * adapter, gsize offset,
+    guint64 * distance)
+{
+  GstBuffer *cur;
+  GSList *g;
+  gsize read_offset = 0;
+  GstClockTime pts = adapter->pts;
+
+  g_return_val_if_fail (GST_IS_ADAPTER (adapter), GST_CLOCK_TIME_NONE);
+  g_return_val_if_fail (offset >= 0, GST_CLOCK_TIME_NONE);
+
+  g = adapter->buflist;
+
+  while (g && read_offset < offset + adapter->skip) {
+    cur = g->data;
+
+    read_offset += gst_buffer_get_size (cur);
+    if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (cur))) {
+      pts = GST_BUFFER_PTS (cur);
+    }
+
+    g = g_slist_next (g);
+  }
+
+  if (distance)
+    *distance = adapter->dts_distance + offset;
+
+  return pts;
+}
+
+/**
+ * gst_adapter_prev_dts_at_offset:
+ * @adapter: a #GstAdapter
+ * @offset: the offset in the adapter at which to get timestamp
+ * @distance: (out) (allow-none): pointer to location for distance, or NULL
+ *
+ * Get the dts that was before the byte at offset @offset 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.
+ *
+ * Since: 1.2
+ * Returns: The previously seen dts at given offset.
+ */
+GstClockTime
+gst_adapter_prev_dts_at_offset (GstAdapter * adapter, gsize offset,
+    guint64 * distance)
+{
+  GstBuffer *cur;
+  GSList *g;
+  gsize read_offset = 0;
+  GstClockTime dts = adapter->dts;
+
+  g_return_val_if_fail (GST_IS_ADAPTER (adapter), GST_CLOCK_TIME_NONE);
+  g_return_val_if_fail (offset >= 0, GST_CLOCK_TIME_NONE);
+
+  g = adapter->buflist;
+
+  while (g && read_offset < offset + adapter->skip) {
+    cur = g->data;
+
+    read_offset += gst_buffer_get_size (cur);
+    if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (cur))) {
+      dts = GST_BUFFER_DTS (cur);
+    }
+
+    g = g_slist_next (g);
+  }
+
+  if (distance)
+    *distance = adapter->dts_distance + offset;
+
+  return dts;
+}
+
+/**
  * gst_adapter_masked_scan_uint32_peek:
  * @adapter: a #GstAdapter
  * @mask: mask to apply to data before matching against @pattern
@@ -971,7 +1071,7 @@
  *
  * Returns: offset of the first match, or -1 if no match was found.
  */
-gsize
+gssize
 gst_adapter_masked_scan_uint32_peek (GstAdapter * adapter, guint32 mask,
     guint32 pattern, gsize offset, gsize size, guint32 * value)
 {
@@ -1108,7 +1208,7 @@
  * // -> returns -1
  * </programlisting>
  */
-gsize
+gssize
 gst_adapter_masked_scan_uint32 (GstAdapter * adapter, guint32 mask,
     guint32 pattern, gsize offset, gsize size)
 {
diff --git a/libs/gst/base/gstadapter.h b/libs/gst/base/gstadapter.h
index 5b89744..9625a01 100644
--- a/libs/gst/base/gstadapter.h
+++ b/libs/gst/base/gstadapter.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
@@ -65,11 +65,13 @@
 
 GstClockTime            gst_adapter_prev_pts            (GstAdapter *adapter, guint64 *distance);
 GstClockTime            gst_adapter_prev_dts            (GstAdapter *adapter, guint64 *distance);
+GstClockTime            gst_adapter_prev_pts_at_offset  (GstAdapter * adapter, gsize offset, guint64 * distance);
+GstClockTime            gst_adapter_prev_dts_at_offset  (GstAdapter * adapter, gsize offset, guint64 * distance);
 
-gsize                   gst_adapter_masked_scan_uint32  (GstAdapter * adapter, guint32 mask,
+gssize                  gst_adapter_masked_scan_uint32  (GstAdapter * adapter, guint32 mask,
                                                          guint32 pattern, gsize offset, gsize size);
 
-gsize                   gst_adapter_masked_scan_uint32_peek  (GstAdapter * adapter, guint32 mask,
+gssize                  gst_adapter_masked_scan_uint32_peek  (GstAdapter * adapter, guint32 mask,
                                                          guint32 pattern, gsize offset, gsize size, guint32 * value);
 
 G_END_DECLS
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 2f55c7c..5152d03 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -248,6 +248,7 @@
   guint min_frame_size;
   gboolean passthrough;
   gboolean pts_interpolate;
+  gboolean infer_ts;
   gboolean syncable;
   gboolean has_timing_info;
   guint fps_num, fps_den;
@@ -430,12 +431,17 @@
 static GstFlowReturn gst_base_parse_parse_frame (GstBaseParse * parse,
     GstBaseParseFrame * frame);
 
-static gboolean gst_base_parse_sink_default (GstBaseParse * parse,
+static gboolean gst_base_parse_sink_event_default (GstBaseParse * parse,
     GstEvent * event);
 
-static gboolean gst_base_parse_src_default (GstBaseParse * parse,
+static gboolean gst_base_parse_src_event_default (GstBaseParse * parse,
     GstEvent * event);
 
+static gboolean gst_base_parse_sink_query_default (GstBaseParse * parse,
+    GstQuery * query);
+static gboolean gst_base_parse_src_query_default (GstBaseParse * parse,
+    GstQuery * query);
+
 static void gst_base_parse_drain (GstBaseParse * parse);
 
 static void gst_base_parse_post_bitrates (GstBaseParse * parse,
@@ -538,8 +544,10 @@
 #endif
 
   /* Default handlers */
-  klass->sink_event = gst_base_parse_sink_default;
-  klass->src_event = gst_base_parse_src_default;
+  klass->sink_event = gst_base_parse_sink_event_default;
+  klass->src_event = gst_base_parse_src_event_default;
+  klass->sink_query = gst_base_parse_sink_query_default;
+  klass->src_query = gst_base_parse_src_query_default;
   klass->convert = gst_base_parse_convert_default;
 
   GST_DEBUG_CATEGORY_INIT (gst_base_parse_debug, "baseparse", 0,
@@ -724,11 +732,12 @@
   parse->priv->first_frame_offset = -1;
   parse->priv->estimated_duration = -1;
   parse->priv->estimated_drift = 0;
-  parse->priv->next_pts = 0;
+  parse->priv->next_pts = GST_CLOCK_TIME_NONE;
   parse->priv->next_dts = 0;
   parse->priv->syncable = TRUE;
   parse->priv->passthrough = FALSE;
   parse->priv->pts_interpolate = TRUE;
+  parse->priv->infer_ts = TRUE;
   parse->priv->has_timing_info = FALSE;
   parse->priv->post_min_bitrate = TRUE;
   parse->priv->post_avg_bitrate = TRUE;
@@ -881,7 +890,7 @@
 }
 
 
-/* gst_base_parse_sink_default:
+/* gst_base_parse_sink_event_default:
  * @parse: #GstBaseParse.
  * @event: #GstEvent to be handled.
  *
@@ -893,7 +902,7 @@
  * Returns: %TRUE if the event was handled and not need forwarding.
  */
 static gboolean
-gst_base_parse_sink_default (GstBaseParse * parse, GstEvent * event)
+gst_base_parse_sink_event_default (GstBaseParse * parse, GstEvent * event)
 {
   GstBaseParseClass *klass = GST_BASE_PARSE_GET_CLASS (parse);
   gboolean ret = FALSE;
@@ -1027,10 +1036,11 @@
       parse->priv->offset = offset;
       parse->priv->sync_offset = offset;
       parse->priv->next_dts = next_dts;
-      if (parse->priv->pts_interpolate)
-        parse->priv->next_pts = next_dts;
+      parse->priv->next_pts = GST_CLOCK_TIME_NONE;
       parse->priv->last_pts = GST_CLOCK_TIME_NONE;
       parse->priv->last_dts = GST_CLOCK_TIME_NONE;
+      parse->priv->prev_pts = GST_CLOCK_TIME_NONE;
+      parse->priv->prev_dts = GST_CLOCK_TIME_NONE;
       parse->priv->discont = TRUE;
       parse->priv->seen_keyframe = FALSE;
       break;
@@ -1159,18 +1169,20 @@
 }
 
 static gboolean
-gst_base_parse_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+gst_base_parse_sink_query_default (GstBaseParse * parse, GstQuery * query)
 {
-  GstBaseParse *parse;
-  GstBaseParseClass *bclass;
+  GstPad *pad;
   gboolean res;
 
-  parse = GST_BASE_PARSE (parent);
-  bclass = GST_BASE_PARSE_GET_CLASS (parse);
+  pad = GST_BASE_PARSE_SINK_PAD (parse);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_CAPS:
     {
+      GstBaseParseClass *bclass;
+
+      bclass = GST_BASE_PARSE_GET_CLASS (parse);
+
       if (bclass->get_sink_caps) {
         GstCaps *caps, *filter;
 
@@ -1204,7 +1216,7 @@
     }
     default:
     {
-      res = gst_pad_query_default (pad, parent, query);
+      res = gst_pad_query_default (pad, GST_OBJECT_CAST (parse), query);
       break;
     }
   }
@@ -1212,6 +1224,52 @@
   return res;
 }
 
+static gboolean
+gst_base_parse_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstBaseParseClass *bclass;
+  GstBaseParse *parse;
+  gboolean ret;
+
+  parse = GST_BASE_PARSE (parent);
+  bclass = GST_BASE_PARSE_GET_CLASS (parse);
+
+  GST_DEBUG_OBJECT (parse, "%s query", GST_QUERY_TYPE_NAME (query));
+
+  if (bclass->sink_query)
+    ret = bclass->sink_query (parse, query);
+  else
+    ret = FALSE;
+
+  GST_LOG_OBJECT (parse, "%s query result: %d %" GST_PTR_FORMAT,
+      GST_QUERY_TYPE_NAME (query), ret, query);
+
+  return ret;
+}
+
+static gboolean
+gst_base_parse_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstBaseParseClass *bclass;
+  GstBaseParse *parse;
+  gboolean ret;
+
+  parse = GST_BASE_PARSE (parent);
+  bclass = GST_BASE_PARSE_GET_CLASS (parse);
+
+  GST_DEBUG_OBJECT (parse, "%s query: %" GST_PTR_FORMAT,
+      GST_QUERY_TYPE_NAME (query), query);
+
+  if (bclass->src_query)
+    ret = bclass->src_query (parse, query);
+  else
+    ret = FALSE;
+
+  GST_LOG_OBJECT (parse, "%s query result: %d %" GST_PTR_FORMAT,
+      GST_QUERY_TYPE_NAME (query), ret, query);
+
+  return ret;
+}
 
 /* gst_base_parse_src_event:
  * @pad: #GstPad that received the event.
@@ -1250,7 +1308,7 @@
   return parse->priv->syncable;
 }
 
-/* gst_base_parse_src_default:
+/* gst_base_parse_src_event_default:
  * @parse: #GstBaseParse.
  * @event: #GstEvent that was received.
  *
@@ -1259,7 +1317,7 @@
  * Returns: TRUE if the event was handled and can be dropped.
  */
 static gboolean
-gst_base_parse_src_default (GstBaseParse * parse, GstEvent * event)
+gst_base_parse_src_event_default (GstBaseParse * parse, GstEvent * event)
 {
   gboolean res = FALSE;
 
@@ -1877,7 +1935,7 @@
   return ret;
 }
 
-/* gst_base_parse_handle_and_push_buffer:
+/* gst_base_parse_handle_and_push_frame:
  * @parse: #GstBaseParse.
  * @klass: #GstBaseParseClass.
  * @frame: (transfer full): a #GstBaseParseFrame
@@ -1929,6 +1987,12 @@
     }
   }
 
+  /* interpolating and no valid pts yet,
+   * start with dts and carry on from there */
+  if (parse->priv->infer_ts && parse->priv->pts_interpolate
+      && !GST_CLOCK_TIME_IS_VALID (parse->priv->next_pts))
+    parse->priv->next_pts = parse->priv->next_dts;
+
   /* again use default handler to add missing metadata;
    * we may have new information on frame properties */
   gst_base_parse_parse_frame (parse, frame);
@@ -2664,10 +2728,21 @@
      * but interpolate in between */
     pts = gst_adapter_prev_pts (parse->priv->adapter, NULL);
     dts = gst_adapter_prev_dts (parse->priv->adapter, NULL);
-    if (GST_CLOCK_TIME_IS_VALID (pts) && (parse->priv->prev_pts != pts)) {
+    if (GST_CLOCK_TIME_IS_VALID (pts) && (parse->priv->prev_pts != pts))
       parse->priv->prev_pts = parse->priv->next_pts = pts;
+
+    if (GST_CLOCK_TIME_IS_VALID (dts) && (parse->priv->prev_dts != dts))
       parse->priv->prev_dts = parse->priv->next_dts = dts;
-    }
+
+    /* we can mess with, erm interpolate, timestamps,
+     * and incoming stuff has PTS but no DTS seen so far,
+     * then pick up DTS from PTS and hope for the best ... */
+    if (parse->priv->infer_ts &&
+        parse->priv->pts_interpolate &&
+        !GST_CLOCK_TIME_IS_VALID (dts) &&
+        !GST_CLOCK_TIME_IS_VALID (parse->priv->prev_dts) &&
+        GST_CLOCK_TIME_IS_VALID (pts))
+      parse->priv->next_dts = pts;
 
     /* always pass all available data */
     data = gst_adapter_map (parse->priv->adapter, av);
@@ -3390,6 +3465,23 @@
 }
 
 /**
+ * gst_base_parse_set_infer_ts:
+ * @parse: a #GstBaseParse
+ * @infer_ts: %TRUE if parser should infer DTS/PTS from each other
+ *
+ * By default, the base class might try to infer PTS from DTS and vice
+ * versa.  While this is generally correct for audio data, it may not
+ * be otherwise. Sub-classes implementing such formats should disable
+ * timestamp infering.
+ */
+void
+gst_base_parse_set_infer_ts (GstBaseParse * parse, gboolean infer_ts)
+{
+  parse->priv->infer_ts = infer_ts;
+  GST_INFO_OBJECT (parse, "TS infering: %s", (infer_ts) ? "yes" : "no");
+}
+
+/**
  * gst_base_parse_set_latency:
  * @parse: a #GstBaseParse
  * @min_latency: minimum parse latency
@@ -3443,14 +3535,12 @@
 }
 
 static gboolean
-gst_base_parse_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
+gst_base_parse_src_query_default (GstBaseParse * parse, GstQuery * query)
 {
-  GstBaseParse *parse;
   gboolean res = FALSE;
+  GstPad *pad;
 
-  parse = GST_BASE_PARSE (parent);
-
-  GST_LOG_OBJECT (parse, "handling query: %" GST_PTR_FORMAT, query);
+  pad = GST_BASE_PARSE_SRC_PAD (parse);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_POSITION:
@@ -3462,7 +3552,7 @@
       gst_query_parse_position (query, &format, NULL);
 
       /* try upstream first */
-      res = gst_pad_query_default (pad, parent, query);
+      res = gst_pad_query_default (pad, GST_OBJECT_CAST (parse), query);
       if (!res) {
         /* Fall back on interpreting segment */
         GST_OBJECT_LOCK (parse);
@@ -3496,7 +3586,7 @@
       gst_query_parse_duration (query, &format, NULL);
 
       /* consult upstream */
-      res = gst_pad_query_default (pad, parent, query);
+      res = gst_pad_query_default (pad, GST_OBJECT_CAST (parse), query);
 
       /* otherwise best estimate from us */
       if (!res) {
@@ -3516,7 +3606,7 @@
       gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
 
       /* consult upstream */
-      res = gst_pad_query_default (pad, parent, query);
+      res = gst_pad_query_default (pad, GST_OBJECT_CAST (parse), query);
 
       /* we may be able to help if in TIME */
       if (fmt == GST_FORMAT_TIME && gst_base_parse_is_seekable (parse)) {
@@ -3585,7 +3675,7 @@
       break;
     }
     default:
-      res = gst_pad_query_default (pad, parent, query);
+      res = gst_pad_query_default (pad, GST_OBJECT_CAST (parse), query);
       break;
   }
   return res;
@@ -4040,8 +4130,7 @@
       parse->priv->seen_keyframe = FALSE;
       parse->priv->discont = TRUE;
       parse->priv->next_dts = start_ts;
-      if (parse->priv->pts_interpolate)
-        parse->priv->next_pts = start_ts;
+      parse->priv->next_pts = GST_CLOCK_TIME_NONE;
       parse->priv->last_dts = GST_CLOCK_TIME_NONE;
       parse->priv->last_pts = GST_CLOCK_TIME_NONE;
       parse->priv->sync_offset = seekpos;
@@ -4244,3 +4333,42 @@
 
   return result;
 }
+
+/**
+ * gst_base_parse_set_ts_at_offset:
+ * @parse: a #GstBaseParse
+ * @offset: offset into current buffer
+ *
+ * This function should only be called from a @handle_frame implementation.
+ *
+ * GstBaseParse creates initial timestamps for frames by using the last
+ * timestamp seen in the stream before the frame starts.  In certain
+ * cases, the correct timestamps will occur in the stream after the
+ * start of the frame, but before the start of the actual picture data.
+ * This function can be used to set the timestamps based on the offset
+ * into the frame data that the picture starts.
+ *
+ * Since: 1.2
+ */
+void
+gst_base_parse_set_ts_at_offset (GstBaseParse * parse, gsize offset)
+{
+  GstClockTime pts, dts;
+
+  g_return_if_fail (GST_IS_BASE_PARSE (parse));
+  g_return_if_fail (offset >= 0);
+
+  pts = gst_adapter_prev_pts_at_offset (parse->priv->adapter, offset, NULL);
+  dts = gst_adapter_prev_dts_at_offset (parse->priv->adapter, offset, NULL);
+
+  if (!GST_CLOCK_TIME_IS_VALID (pts) || !GST_CLOCK_TIME_IS_VALID (dts)) {
+    GST_DEBUG_OBJECT (parse,
+        "offset adapter timestamps dts=%" GST_TIME_FORMAT " pts=%"
+        GST_TIME_FORMAT, GST_TIME_ARGS (dts), GST_TIME_ARGS (pts));
+  }
+  if (GST_CLOCK_TIME_IS_VALID (pts) && (parse->priv->prev_pts != pts))
+    parse->priv->prev_pts = parse->priv->next_pts = pts;
+
+  if (GST_CLOCK_TIME_IS_VALID (dts) && (parse->priv->prev_dts != dts))
+    parse->priv->prev_dts = parse->priv->next_dts = dts;
+}
diff --git a/libs/gst/base/gstbaseparse.h b/libs/gst/base/gstbaseparse.h
index d0a1be4..6c7dd71 100644
--- a/libs/gst/base/gstbaseparse.h
+++ b/libs/gst/base/gstbaseparse.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BASE_PARSE_H__
@@ -213,6 +213,13 @@
  *                   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.
+ * @sink_query:     Optional.
+ *                   Query handler on the sink pad. This function should chain
+ *                   up to the parent implementation to let the default handler
+ *                   run (Since 1.2)
+ * @src_query:      Optional.
+ *                   Query handler on the source pad. Should chain up to the
+ *                   parent to let the default handler run (Since 1.2)
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @check_valid_frame and @parse_frame needs to be
@@ -256,8 +263,14 @@
   GstFlowReturn (*detect)             (GstBaseParse * parse,
                                        GstBuffer    * buffer);
 
+  gboolean      (*sink_query)         (GstBaseParse * parse,
+                                       GstQuery     * query);
+
+  gboolean      (*src_query)          (GstBaseParse * parse,
+                                       GstQuery     * query);
+
   /*< private >*/
-  gpointer       _gst_reserved[GST_PADDING_LARGE];
+  gpointer       _gst_reserved[GST_PADDING_LARGE - 2];
 };
 
 GType           gst_base_parse_get_type (void);
@@ -302,6 +315,9 @@
 void            gst_base_parse_set_pts_interpolation (GstBaseParse * parse,
                                                       gboolean pts_interpolate);
 
+void            gst_base_parse_set_infer_ts (GstBaseParse * parse,
+                                             gboolean infer_ts);
+
 void            gst_base_parse_set_frame_rate  (GstBaseParse * parse,
                                                 guint          fps_num,
                                                 guint          fps_den,
@@ -324,6 +340,9 @@
                                                 gboolean       key,
                                                 gboolean       force);
 
+void            gst_base_parse_set_ts_at_offset (GstBaseParse *parse,
+                                                 gsize offset);
+
 G_END_DECLS
 
 #endif /* __GST_BASE_PARSE_H__ */
diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c
index 390a677..9e97550 100644
--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -265,6 +265,12 @@
   /* for throttling and QoS */
   GstClockTime earliest_in_time;
   GstClockTime throttle_time;
+
+  /* for rate control */
+  guint64 max_bitrate;
+  GstClockTime rc_time;
+  GstClockTime rc_next;
+  gsize rc_accumulated;
 };
 
 #define DO_RUNNING_AVG(avg,val,size) (((val) + ((size)-1) * (avg)) / (size))
@@ -292,6 +298,7 @@
 #define DEFAULT_RENDER_DELAY        0
 #define DEFAULT_ENABLE_LAST_SAMPLE  TRUE
 #define DEFAULT_THROTTLE_TIME       0
+#define DEFAULT_MAX_BITRATE         0
 
 enum
 {
@@ -306,6 +313,7 @@
   PROP_BLOCKSIZE,
   PROP_RENDER_DELAY,
   PROP_THROTTLE_TIME,
+  PROP_MAX_BITRATE,
   PROP_LAST
 };
 
@@ -397,7 +405,7 @@
 /* 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);
+    GstClockReturn status, GstClockTimeDiff jitter, gboolean render);
 
 static void
 gst_base_sink_class_init (GstBaseSinkClass * klass)
@@ -511,8 +519,23 @@
    */
   g_object_class_install_property (gobject_class, PROP_THROTTLE_TIME,
       g_param_spec_uint64 ("throttle-time", "Throttle time",
-          "The time to keep between rendered buffers", 0, G_MAXUINT64,
-          DEFAULT_THROTTLE_TIME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "The time to keep between rendered buffers (0 = disabled)", 0,
+          G_MAXUINT64, DEFAULT_THROTTLE_TIME,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstBaseSink:max-bitrate:
+   *
+   * Control the maximum amount of bits that will be rendered per second.
+   * Setting this property to a value bigger than 0 will make the sink delay
+   * rendering of the buffers when it would exceed to max-bitrate.
+   *
+   * Since: 1.1.1
+   */
+  g_object_class_install_property (gobject_class, PROP_MAX_BITRATE,
+      g_param_spec_uint64 ("max-bitrate", "Max Bitrate",
+          "The maximum bits per second to render (0 = disabled)", 0,
+          G_MAXUINT64, DEFAULT_MAX_BITRATE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_base_sink_change_state);
@@ -643,6 +666,7 @@
   priv->cached_clock_id = NULL;
   g_atomic_int_set (&priv->enable_last_sample, DEFAULT_ENABLE_LAST_SAMPLE);
   priv->throttle_time = DEFAULT_THROTTLE_TIME;
+  priv->max_bitrate = DEFAULT_MAX_BITRATE;
 
   GST_OBJECT_FLAG_SET (basesink, GST_ELEMENT_FLAG_SINK);
 }
@@ -1249,6 +1273,50 @@
   return res;
 }
 
+/**
+ * gst_base_sink_set_max_bitrate:
+ * @sink: a #GstBaseSink
+ * @max_bitrate: the max_bitrate in bits per second
+ *
+ * Set the maximum amount of bits per second that the sink will render.
+ *
+ * Since: 1.1.1
+ */
+void
+gst_base_sink_set_max_bitrate (GstBaseSink * sink, guint64 max_bitrate)
+{
+  g_return_if_fail (GST_IS_BASE_SINK (sink));
+
+  GST_OBJECT_LOCK (sink);
+  sink->priv->max_bitrate = max_bitrate;
+  GST_LOG_OBJECT (sink, "set max_bitrate to %" G_GUINT64_FORMAT, max_bitrate);
+  GST_OBJECT_UNLOCK (sink);
+}
+
+/**
+ * gst_base_sink_get_max_bitrate:
+ * @sink: a #GstBaseSink
+ *
+ * Get the maximum amount of bits per second that the sink will render.
+ *
+ * Returns: the maximum number of bits per second @sink will render.
+ *
+ * Since: 1.1.1
+ */
+guint64
+gst_base_sink_get_max_bitrate (GstBaseSink * sink)
+{
+  guint64 res;
+
+  g_return_val_if_fail (GST_IS_BASE_SINK (sink), 0);
+
+  GST_OBJECT_LOCK (sink);
+  res = sink->priv->max_bitrate;
+  GST_OBJECT_UNLOCK (sink);
+
+  return res;
+}
+
 static void
 gst_base_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
@@ -1283,6 +1351,9 @@
     case PROP_THROTTLE_TIME:
       gst_base_sink_set_throttle_time (sink, g_value_get_uint64 (value));
       break;
+    case PROP_MAX_BITRATE:
+      gst_base_sink_set_max_bitrate (sink, g_value_get_uint64 (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1326,6 +1397,9 @@
     case PROP_THROTTLE_TIME:
       g_value_set_uint64 (value, gst_base_sink_get_throttle_time (sink));
       break;
+    case PROP_MAX_BITRATE:
+      g_value_set_uint64 (value, gst_base_sink_get_max_bitrate (sink));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1417,7 +1491,29 @@
             GST_CLOCK_TIME_NONE));
   }
   if (post_playing) {
+    if (post_paused) {
+      GstElementClass *klass;
+
+      klass = GST_ELEMENT_GET_CLASS (basesink);
+      basesink->have_preroll = TRUE;
+      /* after releasing this lock, the state change function
+       * can execute concurrently with this thread. There is nothing we do to
+       * prevent this for now. subclasses should be prepared to handle it. */
+      GST_BASE_SINK_PREROLL_UNLOCK (basesink);
+
+      if (klass->change_state)
+        klass->change_state (GST_ELEMENT_CAST (basesink),
+            GST_STATE_CHANGE_PAUSED_TO_PLAYING);
+
+      GST_BASE_SINK_PREROLL_LOCK (basesink);
+      /* state change function could have been executed and we could be
+       * flushing now */
+      if (G_UNLIKELY (basesink->flushing))
+        goto stopping;
+    }
     GST_DEBUG_OBJECT (basesink, "posting PLAYING state change message");
+    /* FIXME, we released the PREROLL lock above, it's possible that this
+     * message is not correct anymore when the element went back to PAUSED */
     gst_element_post_message (GST_ELEMENT_CAST (basesink),
         gst_message_new_state_changed (GST_OBJECT_CAST (basesink),
             next, pending, GST_STATE_VOID_PENDING));
@@ -1980,8 +2076,8 @@
   /* FIXME: Casting to GstClockEntry only works because the types
    * are the same */
   if (G_LIKELY (sink->priv->cached_clock_id != NULL
-          && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->
-              priv->cached_clock_id) == clock)) {
+          && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->priv->
+              cached_clock_id) == clock)) {
     if (!gst_clock_single_shot_id_reinit (clock, sink->priv->cached_clock_id,
             time)) {
       gst_clock_id_unref (sink->priv->cached_clock_id);
@@ -2370,6 +2466,18 @@
   /* adjust for latency */
   stime = gst_base_sink_adjust_time (basesink, rstart);
 
+  /* adjust for rate control */
+  if (priv->rc_next == -1 || (stime != -1 && stime >= priv->rc_next)) {
+    GST_DEBUG_OBJECT (basesink, "reset rc_time to time %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (stime));
+    priv->rc_time = stime;
+    priv->rc_accumulated = 0;
+  } else {
+    GST_DEBUG_OBJECT (basesink, "rate control next %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (priv->rc_next));
+    stime = priv->rc_next;
+  }
+
   /* 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,
@@ -2403,7 +2511,7 @@
 
   /* check if the object should be dropped */
   *late = gst_base_sink_is_too_late (basesink, obj, rstart, rstop,
-      status, jitter);
+      status, jitter, TRUE);
 
 done:
   return GST_FLOW_OK;
@@ -2629,7 +2737,7 @@
 static gboolean
 gst_base_sink_is_too_late (GstBaseSink * basesink, GstMiniObject * obj,
     GstClockTime rstart, GstClockTime rstop,
-    GstClockReturn status, GstClockTimeDiff jitter)
+    GstClockReturn status, GstClockTimeDiff jitter, gboolean render)
 {
   gboolean late;
   guint64 max_lateness;
@@ -2688,7 +2796,7 @@
   }
 
 done:
-  if (!late || !GST_CLOCK_TIME_IS_VALID (priv->last_render_time)) {
+  if (render && (!late || !GST_CLOCK_TIME_IS_VALID (priv->last_render_time))) {
     priv->last_render_time = rstart;
     /* the next allowed input timestamp */
     if (priv->throttle_time > 0)
@@ -2812,7 +2920,7 @@
 gst_base_sink_default_wait_event (GstBaseSink * basesink, GstEvent * event)
 {
   GstFlowReturn ret;
-  gboolean late, step_end;
+  gboolean late, step_end = FALSE;
 
   ret = gst_base_sink_do_sync (basesink, GST_MINI_OBJECT_CAST (event),
       &late, &step_end);
@@ -2935,7 +3043,7 @@
       /* 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,
+      GST_DEBUG_OBJECT (basesink, "configured segment %" GST_SEGMENT_FORMAT,
           &basesink->segment);
       basesink->have_newsegment = TRUE;
       GST_OBJECT_UNLOCK (basesink);
@@ -3094,6 +3202,13 @@
   return res;
 }
 
+static gboolean
+count_list_bytes (GstBuffer ** buffer, guint idx, GstBaseSinkPrivate * priv)
+{
+  priv->rc_accumulated += gst_buffer_get_size (*buffer);
+  return TRUE;
+}
+
 /* with STREAM_LOCK, PREROLL_LOCK
  *
  * Takes a buffer and compare the timestamps with the last segment.
@@ -3108,7 +3223,7 @@
 {
   GstBaseSinkClass *bclass;
   GstBaseSinkPrivate *priv = basesink->priv;
-  GstFlowReturn ret;
+  GstFlowReturn ret = GST_FLOW_OK;
   GstClockTime start = GST_CLOCK_TIME_NONE, end = GST_CLOCK_TIME_NONE;
   GstSegment *segment;
   GstBuffer *sync_buf;
@@ -3174,17 +3289,36 @@
       goto out_of_segment;
   }
 
-  if (!is_list) {
-    if (bclass->prepare) {
-      ret = bclass->prepare (basesink, GST_BUFFER_CAST (obj));
-      if (G_UNLIKELY (ret != GST_FLOW_OK))
-        goto prepare_failed;
-    }
-  } else {
-    if (bclass->prepare_list) {
-      ret = bclass->prepare_list (basesink, GST_BUFFER_LIST_CAST (obj));
-      if (G_UNLIKELY (ret != GST_FLOW_OK))
-        goto prepare_failed;
+  if (bclass->prepare || bclass->prepare_list) {
+    gboolean late = FALSE;
+    gboolean do_sync = TRUE, stepped = FALSE, step_end = FALSE, syncable = TRUE;
+    GstClockTime sstart, sstop, rstart, rstop, rnext;
+    GstStepInfo *current;
+
+    current = &priv->current_step;
+    syncable =
+        gst_base_sink_get_sync_times (basesink, obj, &sstart, &sstop, &rstart,
+        &rstop, &rnext, &do_sync, &stepped, current, &step_end);
+
+    if (!stepped && syncable && do_sync)
+      late =
+          gst_base_sink_is_too_late (basesink, obj, rstart, rstop,
+          GST_CLOCK_EARLY, 0, FALSE);
+    if (late)
+      goto dropped;
+
+    if (!is_list) {
+      if (bclass->prepare) {
+        ret = bclass->prepare (basesink, GST_BUFFER_CAST (obj));
+        if (G_UNLIKELY (ret != GST_FLOW_OK))
+          goto prepare_failed;
+      }
+    } else {
+      if (bclass->prepare_list) {
+        ret = bclass->prepare_list (basesink, GST_BUFFER_LIST_CAST (obj));
+        if (G_UNLIKELY (ret != GST_FLOW_OK))
+          goto prepare_failed;
+      }
     }
   }
 
@@ -3203,6 +3337,17 @@
   if (G_UNLIKELY (late))
     goto dropped;
 
+  if (priv->max_bitrate) {
+    if (is_list) {
+      gst_buffer_list_foreach (GST_BUFFER_LIST_CAST (obj),
+          (GstBufferListFunc) count_list_bytes, priv);
+    } else {
+      priv->rc_accumulated += gst_buffer_get_size (GST_BUFFER_CAST (obj));
+    }
+    priv->rc_next = priv->rc_time + gst_util_uint64_scale (priv->rc_accumulated,
+        8 * GST_SECOND, priv->max_bitrate);
+  }
+
   /* read once, to get same value before and after */
   do_qos = g_atomic_int_get (&priv->qos_enabled);
 
@@ -3551,7 +3696,6 @@
     res = gst_base_sink_default_do_seek (sink, &seeksegment);
   }
 
-
   if (flush) {
     GST_DEBUG_OBJECT (sink, "stop flushing upstream");
     gst_pad_push_event (pad, gst_event_new_flush_stop (TRUE));
@@ -3571,6 +3715,9 @@
     res = FALSE;
   }
 
+  GST_INFO_OBJECT (sink, "seeking done %d: %" GST_SEGMENT_FORMAT, res,
+      &seeksegment);
+
   /* if successful seek, we update our real segment and push
    * out the new segment. */
   if (res) {
@@ -4687,6 +4834,7 @@
       basesink->eos = FALSE;
       priv->received_eos = FALSE;
       gst_base_sink_reset_qos (basesink);
+      priv->rc_next = -1;
       priv->commited = FALSE;
       priv->call_preroll = TRUE;
       priv->current_step.valid = FALSE;
diff --git a/libs/gst/base/gstbasesink.h b/libs/gst/base/gstbasesink.h
index e4bb735..6f2ade7 100644
--- a/libs/gst/base/gstbasesink.h
+++ b/libs/gst/base/gstbasesink.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BASE_SINK_H__
@@ -245,6 +245,10 @@
 void            gst_base_sink_set_throttle_time (GstBaseSink *sink, guint64 throttle);
 guint64         gst_base_sink_get_throttle_time (GstBaseSink *sink);
 
+/* max-bitrate */
+void            gst_base_sink_set_max_bitrate   (GstBaseSink *sink, guint64 max_bitrate);
+guint64         gst_base_sink_get_max_bitrate   (GstBaseSink *sink);
+
 GstClockReturn  gst_base_sink_wait_clock        (GstBaseSink *sink, GstClockTime time,
                                                  GstClockTimeDiff * jitter);
 GstFlowReturn   gst_base_sink_wait              (GstBaseSink *sink, GstClockTime time,
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index d04b513..a692b6f 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -346,7 +346,7 @@
 static gboolean gst_base_src_seekable (GstBaseSrc * src);
 static gboolean gst_base_src_negotiate (GstBaseSrc * basesrc);
 static gboolean gst_base_src_update_length (GstBaseSrc * src, guint64 offset,
-    guint * length);
+    guint * length, gboolean force);
 
 static void
 gst_base_src_class_init (GstBaseSrcClass * klass)
@@ -878,7 +878,7 @@
     res = bclass->set_caps (src, caps);
 
   if (res)
-    res = gst_pad_set_caps (src->srcpad, caps);
+    res = gst_pad_push_event (src->srcpad, gst_event_new_caps (caps));
 
   return res;
 }
@@ -1018,8 +1018,8 @@
           guint length = 0;
 
           /* may have to refresh duration */
-          if (g_atomic_int_get (&src->priv->dynamic_size))
-            gst_base_src_update_length (src, 0, &length);
+          gst_base_src_update_length (src, 0, &length,
+              g_atomic_int_get (&src->priv->dynamic_size));
 
           /* this is the duration as configured by the subclass. */
           GST_OBJECT_LOCK (src);
@@ -1288,6 +1288,8 @@
 
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
+  GST_INFO_OBJECT (src, "seeking: %" GST_SEGMENT_FORMAT, segment);
+
   if (bclass->do_seek)
     result = bclass->do_seek (src, segment);
 
@@ -1658,6 +1660,7 @@
 
     /* for deriving a stop position for the playback segment from the seek
      * segment, we must take the duration when the stop is not set */
+    /* FIXME: This is never used below */
     if ((stop = seeksegment.stop) == -1)
       stop = seeksegment.duration;
 
@@ -2218,13 +2221,13 @@
 
 /* Called with STREAM_LOCK and LIVE_LOCK */
 static gboolean
-gst_base_src_update_length (GstBaseSrc * src, guint64 offset, guint * length)
+gst_base_src_update_length (GstBaseSrc * src, guint64 offset, guint * length,
+    gboolean force)
 {
   guint64 size, maxsize;
   GstBaseSrcClass *bclass;
   GstFormat format;
   gint64 stop;
-  gboolean dynamic;
 
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
@@ -2249,14 +2252,11 @@
       ", segment.stop %" G_GINT64_FORMAT ", maxsize %" G_GINT64_FORMAT, offset,
       *length, size, stop, maxsize);
 
-  dynamic = g_atomic_int_get (&src->priv->dynamic_size);
-  GST_DEBUG_OBJECT (src, "dynamic size: %d", dynamic);
-
   /* check size if we have one */
   if (maxsize != -1) {
     /* if we run past the end, check if the file became bigger and
      * retry. */
-    if (G_UNLIKELY (offset + *length >= maxsize || dynamic)) {
+    if (G_UNLIKELY (offset + *length >= maxsize || force)) {
       /* see if length of the file changed */
       if (bclass->get_size)
         if (!bclass->get_size (src, &size))
@@ -2324,7 +2324,7 @@
   if (G_UNLIKELY (!bclass->create))
     goto no_function;
 
-  if (G_UNLIKELY (!gst_base_src_update_length (src, offset, &length)))
+  if (G_UNLIKELY (!gst_base_src_update_length (src, offset, &length, FALSE)))
     goto unexpected_length;
 
   /* track position */
@@ -3369,7 +3369,7 @@
 
 was_stopped:
   {
-    GST_DEBUG_OBJECT (basesrc, "was started");
+    GST_DEBUG_OBJECT (basesrc, "was stopped");
     GST_OBJECT_UNLOCK (basesrc);
     return TRUE;
   }
diff --git a/libs/gst/base/gstbasesrc.h b/libs/gst/base/gstbasesrc.h
index 466f0fc..9afd5e0 100644
--- a/libs/gst/base/gstbasesrc.h
+++ b/libs/gst/base/gstbasesrc.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BASE_SRC_H__
diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
index fff751d..df672bf 100644
--- a/libs/gst/base/gstbasetransform.c
+++ b/libs/gst/base/gstbasetransform.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -149,9 +149,8 @@
  *   <itemizedlist><title>Special output buffer allocations</title>
  *   <listitem><para>
  *     Elements which need to do special allocation of their output buffers
- *     other than what gst_buffer_pad_alloc allows should implement a
- *     prepare_output_buffer method, which calls the parent implementation and
- *     passes the newly allocated buffer.
+ *     beyond allocating output buffers via the negotiated allocator or
+ *     buffer pool should implement the prepare_output_buffer method.
  *   </para></listitem>
  *   </itemizedlist>
  *   <itemizedlist>
@@ -1237,9 +1236,9 @@
 
     /* get all the formats we can handle on this pad */
     if (direction == GST_PAD_SRC)
-      allowed = gst_pad_query_caps (trans->srcpad, NULL);
+      allowed = gst_pad_query_caps (trans->srcpad, caps);
     else
-      allowed = gst_pad_query_caps (trans->sinkpad, NULL);
+      allowed = gst_pad_query_caps (trans->sinkpad, caps);
 
     if (!allowed) {
       GST_DEBUG_OBJECT (trans, "gst_pad_query_caps() failed");
@@ -1592,6 +1591,10 @@
 
   GST_DEBUG_OBJECT (trans, "doing alloc of size %" G_GSIZE_FORMAT, outsize);
   *outbuf = gst_buffer_new_allocate (priv->allocator, outsize, &priv->params);
+  if (!*outbuf) {
+    ret = GST_FLOW_ERROR;
+    goto alloc_failed;
+  }
 
 copy_meta:
   /* copy the metadata */
diff --git a/libs/gst/base/gstbasetransform.h b/libs/gst/base/gstbasetransform.h
index 666fbb1..3330503 100644
--- a/libs/gst/base/gstbasetransform.h
+++ b/libs/gst/base/gstbasetransform.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BASE_TRANSFORM_H__
diff --git a/libs/gst/base/gstbitreader-docs.h b/libs/gst/base/gstbitreader-docs.h
index 80e8913..d2842d6 100644
--- a/libs/gst/base/gstbitreader-docs.h
+++ b/libs/gst/base/gstbitreader-docs.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* This header is not installed, it just contains stuff for gtk-doc to parse,
@@ -53,7 +53,7 @@
  *
  * Returns: unsigned 8 bit integer with the bits.
  */
-guint8 gst_bit_reader_peek_bits_uint8_unchecked (const GstBitReader *reader, guint nbits);
+guint8 gst_bit_reader_get_bits_uint8_unchecked (GstBitReader *reader, guint nbits);
 
 /**
  * gst_bit_reader_peek_bits_uint8_unchecked:
@@ -65,7 +65,7 @@
  *
  * Returns: unsigned 8 bit integer with the bits.
  */
-guint8 gst_bit_reader_get_bits_uint8_unchecked (GstBitReader *reader, guint nbits);
+guint8 gst_bit_reader_peek_bits_uint8_unchecked (const GstBitReader *reader, guint nbits);
 
 /**
  * gst_bit_reader_get_bits_uint16_unchecked:
@@ -77,7 +77,7 @@
  *
  * Returns: unsigned 16 bit integer with the bits.
  */
-guint16 gst_bit_reader_peek_bits_uint16_unchecked (const GstBitReader *reader, guint nbits);
+guint16 gst_bit_reader_get_bits_uint16_unchecked (GstBitReader *reader, guint nbits);
 
 /**
  * gst_bit_reader_peek_bits_uint16_unchecked:
@@ -89,7 +89,7 @@
  *
  * Returns: unsigned 16 bit integer with the bits.
  */
-guint16 gst_bit_reader_get_bits_uint16_unchecked (GstBitReader *reader, guint nbits);
+guint16 gst_bit_reader_peek_bits_uint16_unchecked (const GstBitReader *reader, guint nbits);
 
 /**
  * gst_bit_reader_get_bits_uint32_unchecked:
@@ -101,7 +101,7 @@
  *
  * Returns: unsigned 32 bit integer with the bits.
  */
-guint32 gst_bit_reader_peek_bits_uint32_unchecked (const GstBitReader *reader, guint nbits);
+guint32 gst_bit_reader_get_bits_uint32_unchecked (GstBitReader *reader, guint nbits);
 
 /**
  * gst_bit_reader_peek_bits_uint32_unchecked:
@@ -113,7 +113,7 @@
  *
  * Returns: unsigned 32 bit integer with the bits.
  */
-guint32 gst_bit_reader_get_bits_uint32_unchecked (GstBitReader *reader, guint nbits);
+guint32 gst_bit_reader_peek_bits_uint32_unchecked (const GstBitReader *reader, guint nbits);
 
 /**
  * gst_bit_reader_get_bits_uint64_unchecked:
@@ -125,10 +125,10 @@
  *
  * Returns: unsigned 64 bit integer with the bits.
  */
-guint64 gst_bit_reader_peek_bits_uint64_unchecked (const GstBitReader *reader, guint nbits);
+guint64 gst_bit_reader_get_bits_uint64_unchecked (GstBitReader *reader, guint nbits);
 
 /**
- * gst_bit_reader_peek_bits_uint16_unchecked:
+ * gst_bit_reader_peek_bits_uint64_unchecked:
  * @reader: a #GstBitReader instance
  * @nbits: number of bits to read
  *
@@ -137,5 +137,5 @@
  *
  * Returns: unsigned 64 bit integer with the bits.
  */
-guint64 gst_bit_reader_get_bits_uint64_unchecked (GstBitReader *reader, guint nbits);
+guint64 gst_bit_reader_peek_bits_uint64_unchecked (const GstBitReader *reader, guint nbits);
 
diff --git a/libs/gst/base/gstbitreader.c b/libs/gst/base/gstbitreader.c
index 0f8f587..2a325db 100644
--- a/libs/gst/base/gstbitreader.c
+++ b/libs/gst/base/gstbitreader.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libs/gst/base/gstbitreader.h b/libs/gst/base/gstbitreader.h
index 4a2b4a0..240a7a3 100644
--- a/libs/gst/base/gstbitreader.h
+++ b/libs/gst/base/gstbitreader.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BIT_READER_H__
diff --git a/libs/gst/base/gstbytereader-docs.h b/libs/gst/base/gstbytereader-docs.h
index e6b08ac..866954f 100644
--- a/libs/gst/base/gstbytereader-docs.h
+++ b/libs/gst/base/gstbytereader-docs.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* This header is not installed, it just contains stuff for gtk-doc to parse,
diff --git a/libs/gst/base/gstbytereader.c b/libs/gst/base/gstbytereader.c
index e1945d1..5ca9555 100644
--- a/libs/gst/base/gstbytereader.c
+++ b/libs/gst/base/gstbytereader.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libs/gst/base/gstbytereader.h b/libs/gst/base/gstbytereader.h
index 15ac2ed..6ed0296 100644
--- a/libs/gst/base/gstbytereader.h
+++ b/libs/gst/base/gstbytereader.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BYTE_READER_H__
diff --git a/libs/gst/base/gstbytewriter-docs.h b/libs/gst/base/gstbytewriter-docs.h
index c15b4c3..562eeae 100644
--- a/libs/gst/base/gstbytewriter-docs.h
+++ b/libs/gst/base/gstbytewriter-docs.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* This header is not installed, it just contains stuff for gtk-doc to parse,
diff --git a/libs/gst/base/gstbytewriter.c b/libs/gst/base/gstbytewriter.c
index 746a622..2d99480 100644
--- a/libs/gst/base/gstbytewriter.c
+++ b/libs/gst/base/gstbytewriter.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libs/gst/base/gstbytewriter.h b/libs/gst/base/gstbytewriter.h
index 079e16f..f5c5502 100644
--- a/libs/gst/base/gstbytewriter.h
+++ b/libs/gst/base/gstbytewriter.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BYTE_WRITER_H__
diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c
index b6db9f4..e9cabab 100644
--- a/libs/gst/base/gstcollectpads.c
+++ b/libs/gst/base/gstcollectpads.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstcollectpads
@@ -55,7 +55,7 @@
  *   </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.
+ *     gst_collect_pads_read_buffer() and gst_collect_pads_flush() calls.
  *   </para></listitem>
  *   <listitem><para>
  *     Elements should call gst_collect_pads_start() and gst_collect_pads_stop() in
@@ -498,7 +498,7 @@
   GstClockTime time;
 
   *outbuf = buf;
-  time = GST_BUFFER_TIMESTAMP (buf);
+  time = GST_BUFFER_PTS (buf);
 
   /* invalid left alone and passed */
   if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (time))) {
@@ -510,9 +510,11 @@
     } 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));
+          GST_TIME_ARGS (GST_BUFFER_PTS (buf)), GST_TIME_ARGS (time));
       *outbuf = gst_buffer_make_writable (buf);
-      GST_BUFFER_TIMESTAMP (*outbuf) = time;
+      GST_BUFFER_PTS (*outbuf) = time;
+      GST_BUFFER_DTS (*outbuf) = gst_segment_to_running_time (&cdata->segment,
+          GST_FORMAT_TIME, GST_BUFFER_DTS (*outbuf));
     }
   }
 
@@ -1405,7 +1407,10 @@
     buffer = gst_collect_pads_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);
+      timestamp = GST_BUFFER_DTS (buffer);
+      if (!GST_CLOCK_TIME_IS_VALID (timestamp)) {
+        timestamp = GST_BUFFER_PTS (buffer);
+      }
       gst_buffer_unref (buffer);
       if (best == NULL || pads->priv->compare_func (pads, data, timestamp,
               best, best_time, pads->priv->compare_user_data) < 0) {
@@ -1569,10 +1574,11 @@
 
   if (pads->priv->clip_func) {
     in = gst_buffer_new ();
-    GST_BUFFER_TIMESTAMP (in) = time;
+    GST_BUFFER_PTS (in) = time;
+    GST_BUFFER_DTS (in) = time;
     pads->priv->clip_func (pads, data, in, &out, pads->priv->clip_user_data);
     if (out) {
-      otime = GST_BUFFER_TIMESTAMP (out);
+      otime = GST_BUFFER_PTS (out);
       gst_buffer_unref (out);
     } else {
       /* FIXME should distinguish between ahead or after segment,
@@ -1996,7 +2002,11 @@
 
   /* update segment last position if in TIME */
   if (G_LIKELY (data->segment.format == GST_FORMAT_TIME)) {
-    GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
+    GstClockTime timestamp;
+
+    timestamp = GST_BUFFER_DTS (buffer);
+    if (!GST_CLOCK_TIME_IS_VALID (timestamp))
+      timestamp = GST_BUFFER_PTS (buffer);
 
     if (GST_CLOCK_TIME_IS_VALID (timestamp))
       data->segment.position = timestamp;
diff --git a/libs/gst/base/gstcollectpads.h b/libs/gst/base/gstcollectpads.h
index c33ca4f..4c99d58 100644
--- a/libs/gst/base/gstcollectpads.h
+++ b/libs/gst/base/gstcollectpads.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_COLLECT_PADS_H__
diff --git a/plugins/elements/gstdataqueue.c b/libs/gst/base/gstdataqueue.c
similarity index 66%
rename from plugins/elements/gstdataqueue.c
rename to libs/gst/base/gstdataqueue.c
index 04e3221..9a3ca9f 100644
--- a/plugins/elements/gstdataqueue.c
+++ b/libs/gst/base/gstdataqueue.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -31,6 +31,7 @@
 #include <gst/gst.h>
 #include "string.h"
 #include "gstdataqueue.h"
+#include "gstqueuearray.h"
 #include "gst/glib-compat-private.h"
 
 GST_DEBUG_CATEGORY_STATIC (data_queue_debug);
@@ -48,34 +49,54 @@
 
 enum
 {
-  ARG_0,
-  ARG_CUR_LEVEL_VISIBLE,
-  ARG_CUR_LEVEL_BYTES,
-  ARG_CUR_LEVEL_TIME
+  PROP_0,
+  PROP_CUR_LEVEL_VISIBLE,
+  PROP_CUR_LEVEL_BYTES,
+  PROP_CUR_LEVEL_TIME
       /* FILL ME */
 };
 
+struct _GstDataQueuePrivate
+{
+  /* the array of data we're keeping our grubby hands on */
+  GstQueueArray *queue;
+
+  GstDataQueueSize cur_level;   /* size of the queue */
+  GstDataQueueCheckFullFunction checkfull;      /* Callback to check if the queue is full */
+  gpointer *checkdata;
+
+  GMutex qlock;                 /* lock for queue (vs object lock) */
+  gboolean waiting_add;
+  GCond item_add;               /* signals buffers now available for reading */
+  gboolean waiting_del;
+  GCond item_del;               /* signals space now available for writing */
+  gboolean flushing;            /* indicates whether conditions where signalled because
+                                 * of external flushing */
+  GstDataQueueFullCallback fullcallback;
+  GstDataQueueEmptyCallback emptycallback;
+};
+
 #define GST_DATA_QUEUE_MUTEX_LOCK(q) G_STMT_START {                     \
-    GST_CAT_LOG (data_queue_dataflow,                                   \
+    GST_CAT_TRACE (data_queue_dataflow,                                 \
       "locking qlock from thread %p",                                   \
       g_thread_self ());                                                \
-  g_mutex_lock (&q->qlock);                                              \
-  GST_CAT_LOG (data_queue_dataflow,                                     \
+  g_mutex_lock (&q->priv->qlock);                                       \
+  GST_CAT_TRACE (data_queue_dataflow,                                   \
       "locked qlock from thread %p",                                    \
       g_thread_self ());                                                \
 } G_STMT_END
 
 #define GST_DATA_QUEUE_MUTEX_LOCK_CHECK(q, label) G_STMT_START {        \
     GST_DATA_QUEUE_MUTEX_LOCK (q);                                      \
-    if (q->flushing)                                                    \
+    if (q->priv->flushing)                                              \
       goto label;                                                       \
   } G_STMT_END
 
 #define GST_DATA_QUEUE_MUTEX_UNLOCK(q) G_STMT_START {                   \
-    GST_CAT_LOG (data_queue_dataflow,                                   \
+    GST_CAT_TRACE (data_queue_dataflow,                                 \
       "unlocking qlock from thread %p",                                 \
       g_thread_self ());                                                \
-  g_mutex_unlock (&q->qlock);                                            \
+  g_mutex_unlock (&q->priv->qlock);                                     \
 } G_STMT_END
 
 #define STATUS(q, msg)                                                  \
@@ -84,10 +105,10 @@
                "bytes, %"G_GUINT64_FORMAT                               \
                " ns, %u elements",                                      \
                queue,                                                   \
-               q->cur_level.visible,                                    \
-               q->cur_level.bytes,                                      \
-               q->cur_level.time,                                       \
-               q->queue.length)
+               q->priv->cur_level.visible,                              \
+               q->priv->cur_level.bytes,                                \
+               q->priv->cur_level.time,                                 \
+               gst_queue_array_get_length (q->priv->queue))
 
 static void gst_data_queue_finalize (GObject * object);
 
@@ -96,7 +117,6 @@
 static void gst_data_queue_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static GObjectClass *parent_class = NULL;
 static guint gst_data_queue_signals[LAST_SIGNAL] = { 0 };
 
 #define _do_init \
@@ -107,7 +127,7 @@
       "dataflow inside the data queue object"); \
 }
 
-
+#define parent_class gst_data_queue_parent_class
 G_DEFINE_TYPE_WITH_CODE (GstDataQueue, gst_data_queue, G_TYPE_OBJECT, _do_init);
 
 static void
@@ -115,7 +135,7 @@
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
+  g_type_class_add_private (klass, sizeof (GstDataQueuePrivate));
 
   gobject_class->set_property = gst_data_queue_set_property;
   gobject_class->get_property = gst_data_queue_get_property;
@@ -150,16 +170,16 @@
       g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 
   /* properties */
-  g_object_class_install_property (gobject_class, ARG_CUR_LEVEL_BYTES,
+  g_object_class_install_property (gobject_class, PROP_CUR_LEVEL_BYTES,
       g_param_spec_uint ("current-level-bytes", "Current level (kB)",
           "Current amount of data in the queue (bytes)",
           0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, ARG_CUR_LEVEL_VISIBLE,
+  g_object_class_install_property (gobject_class, PROP_CUR_LEVEL_VISIBLE,
       g_param_spec_uint ("current-level-visible",
           "Current level (visible items)",
           "Current number of visible items in the queue", 0, G_MAXUINT, 0,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, ARG_CUR_LEVEL_TIME,
+  g_object_class_install_property (gobject_class, PROP_CUR_LEVEL_TIME,
       g_param_spec_uint64 ("current-level-time", "Current level (ns)",
           "Current amount of data in the queue (in ns)", 0, G_MAXUINT64, 0,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
@@ -170,22 +190,26 @@
 static void
 gst_data_queue_init (GstDataQueue * queue)
 {
-  queue->cur_level.visible = 0; /* no content */
-  queue->cur_level.bytes = 0;   /* no content */
-  queue->cur_level.time = 0;    /* no content */
+  queue->priv =
+      G_TYPE_INSTANCE_GET_PRIVATE (queue, GST_TYPE_DATA_QUEUE,
+      GstDataQueuePrivate);
 
-  queue->checkfull = NULL;
+  queue->priv->cur_level.visible = 0;   /* no content */
+  queue->priv->cur_level.bytes = 0;     /* no content */
+  queue->priv->cur_level.time = 0;      /* no content */
 
-  g_mutex_init (&queue->qlock);
-  g_cond_init (&queue->item_add);
-  g_cond_init (&queue->item_del);
-  gst_queue_array_init (&queue->queue, 50);
+  queue->priv->checkfull = NULL;
+
+  g_mutex_init (&queue->priv->qlock);
+  g_cond_init (&queue->priv->item_add);
+  g_cond_init (&queue->priv->item_del);
+  queue->priv->queue = gst_queue_array_new (50);
 
   GST_DEBUG ("initialized queue's not_empty & not_full conditions");
 }
 
 /**
- * gst_data_queue_new_full:
+ * gst_data_queue_new:
  * @checkfull: the callback used to tell if the element considers the queue full
  * or not.
  * @fullcallback: the callback which will be called when the queue is considered full.
@@ -197,10 +221,11 @@
  * or @emptycallback.
  *
  * Returns: a new #GstDataQueue.
+ *
+ * Since: 1.2.0
  */
-
 GstDataQueue *
-gst_data_queue_new_full (GstDataQueueCheckFullFunction checkfull,
+gst_data_queue_new (GstDataQueueCheckFullFunction checkfull,
     GstDataQueueFullCallback fullcallback,
     GstDataQueueEmptyCallback emptycallback, gpointer checkdata)
 {
@@ -209,41 +234,28 @@
   g_return_val_if_fail (checkfull != NULL, NULL);
 
   ret = g_object_newv (GST_TYPE_DATA_QUEUE, 0, NULL);
-  ret->checkfull = checkfull;
-  ret->checkdata = checkdata;
-  ret->fullcallback = fullcallback;
-  ret->emptycallback = emptycallback;
+  ret->priv->checkfull = checkfull;
+  ret->priv->checkdata = checkdata;
+  ret->priv->fullcallback = fullcallback;
+  ret->priv->emptycallback = emptycallback;
 
   return ret;
 }
 
-/**
- * gst_data_queue_new:
- * @checkfull: the callback used to tell if the element considers the queue full
- * or not.
- * @checkdata: a #gpointer that will be given in the @checkfull callback.
- *
- * Returns: a new #GstDataQueue.
- */
-
-GstDataQueue *
-gst_data_queue_new (GstDataQueueCheckFullFunction checkfull, gpointer checkdata)
-{
-  return gst_data_queue_new_full (checkfull, NULL, NULL, checkdata);
-}
-
 static void
 gst_data_queue_cleanup (GstDataQueue * queue)
 {
-  while (!gst_queue_array_is_empty (&queue->queue)) {
-    GstDataQueueItem *item = gst_queue_array_pop_head (&queue->queue);
+  GstDataQueuePrivate *priv = queue->priv;
+
+  while (!gst_queue_array_is_empty (priv->queue)) {
+    GstDataQueueItem *item = gst_queue_array_pop_head (priv->queue);
 
     /* Just call the destroy notify on the item */
     item->destroy (item);
   }
-  queue->cur_level.visible = 0;
-  queue->cur_level.bytes = 0;
-  queue->cur_level.time = 0;
+  priv->cur_level.visible = 0;
+  priv->cur_level.bytes = 0;
+  priv->cur_level.time = 0;
 }
 
 /* called only once, as opposed to dispose */
@@ -251,18 +263,19 @@
 gst_data_queue_finalize (GObject * object)
 {
   GstDataQueue *queue = GST_DATA_QUEUE (object);
+  GstDataQueuePrivate *priv = queue->priv;
 
   GST_DEBUG ("finalizing queue");
 
   gst_data_queue_cleanup (queue);
-  gst_queue_array_clear (&queue->queue);
+  gst_queue_array_free (priv->queue);
 
   GST_DEBUG ("free mutex");
-  g_mutex_clear (&queue->qlock);
+  g_mutex_clear (&priv->qlock);
   GST_DEBUG ("done free mutex");
 
-  g_cond_clear (&queue->item_add);
-  g_cond_clear (&queue->item_del);
+  g_cond_clear (&priv->item_add);
+  g_cond_clear (&priv->item_del);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -270,25 +283,31 @@
 static inline void
 gst_data_queue_locked_flush (GstDataQueue * queue)
 {
+  GstDataQueuePrivate *priv = queue->priv;
+
   STATUS (queue, "before flushing");
   gst_data_queue_cleanup (queue);
   STATUS (queue, "after flushing");
   /* we deleted something... */
-  if (queue->waiting_del)
-    g_cond_signal (&queue->item_del);
+  if (priv->waiting_del)
+    g_cond_signal (&priv->item_del);
 }
 
 static inline gboolean
 gst_data_queue_locked_is_empty (GstDataQueue * queue)
 {
-  return (queue->queue.length == 0);
+  GstDataQueuePrivate *priv = queue->priv;
+
+  return (gst_queue_array_get_length (priv->queue) == 0);
 }
 
 static inline gboolean
 gst_data_queue_locked_is_full (GstDataQueue * queue)
 {
-  return queue->checkfull (queue, queue->cur_level.visible,
-      queue->cur_level.bytes, queue->cur_level.time, queue->checkdata);
+  GstDataQueuePrivate *priv = queue->priv;
+
+  return priv->checkfull (queue, priv->cur_level.visible,
+      priv->cur_level.bytes, priv->cur_level.time, priv->checkdata);
 }
 
 /**
@@ -298,6 +317,8 @@
  * Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
  * #gst_data_queue_pop will be released.
  * MT safe.
+ *
+ * Since: 1.2.0
  */
 void
 gst_data_queue_flush (GstDataQueue * queue)
@@ -316,6 +337,8 @@
  * MT safe.
  *
  * Returns: #TRUE if @queue is empty.
+ *
+ * Since: 1.2.0
  */
 gboolean
 gst_data_queue_is_empty (GstDataQueue * queue)
@@ -338,6 +361,8 @@
  * MT safe.
  *
  * Returns: #TRUE if @queue is full.
+ *
+ * Since: 1.2.0
  */
 gboolean
 gst_data_queue_is_full (GstDataQueue * queue)
@@ -363,20 +388,24 @@
  * all calls to those two functions will return #FALSE.
  *
  * MT Safe.
+ *
+ * Since: 1.2.0
  */
 void
 gst_data_queue_set_flushing (GstDataQueue * queue, gboolean flushing)
 {
+  GstDataQueuePrivate *priv = queue->priv;
+
   GST_DEBUG ("queue:%p , flushing:%d", queue, flushing);
 
   GST_DATA_QUEUE_MUTEX_LOCK (queue);
-  queue->flushing = flushing;
+  priv->flushing = flushing;
   if (flushing) {
     /* release push/pop functions */
-    if (queue->waiting_add)
-      g_cond_signal (&queue->item_add);
-    if (queue->waiting_del)
-      g_cond_signal (&queue->item_del);
+    if (priv->waiting_add)
+      g_cond_signal (&priv->item_add);
+    if (priv->waiting_del)
+      g_cond_signal (&priv->item_del);
   }
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 }
@@ -397,10 +426,14 @@
  * is returned, the caller is responsible for freeing @item and its contents.
  *
  * Returns: #TRUE if the @item was successfully pushed on the @queue.
+ *
+ * Since: 1.2.0
  */
 gboolean
 gst_data_queue_push (GstDataQueue * queue, GstDataQueueItem * item)
 {
+  GstDataQueuePrivate *priv = queue->priv;
+
   g_return_val_if_fail (GST_IS_DATA_QUEUE (queue), FALSE);
   g_return_val_if_fail (item != NULL, FALSE);
 
@@ -411,32 +444,32 @@
   /* We ALWAYS need to check for queue fillness */
   if (gst_data_queue_locked_is_full (queue)) {
     GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
-    if (G_LIKELY (queue->fullcallback))
-      queue->fullcallback (queue, queue->checkdata);
+    if (G_LIKELY (priv->fullcallback))
+      priv->fullcallback (queue, priv->checkdata);
     else
       g_signal_emit (queue, gst_data_queue_signals[SIGNAL_FULL], 0);
     GST_DATA_QUEUE_MUTEX_LOCK_CHECK (queue, flushing);
 
     /* 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);
-      queue->waiting_del = FALSE;
-      if (queue->flushing)
+      priv->waiting_del = TRUE;
+      g_cond_wait (&priv->item_del, &priv->qlock);
+      priv->waiting_del = FALSE;
+      if (priv->flushing)
         goto flushing;
     }
   }
 
-  gst_queue_array_push_tail (&queue->queue, item);
+  gst_queue_array_push_tail (priv->queue, item);
 
   if (item->visible)
-    queue->cur_level.visible++;
-  queue->cur_level.bytes += item->size;
-  queue->cur_level.time += item->duration;
+    priv->cur_level.visible++;
+  priv->cur_level.bytes += item->size;
+  priv->cur_level.time += item->duration;
 
   STATUS (queue, "after pushing");
-  if (queue->waiting_add)
-    g_cond_signal (&queue->item_add);
+  if (priv->waiting_add)
+    g_cond_signal (&priv->item_add);
 
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 
@@ -451,6 +484,21 @@
   }
 }
 
+static gboolean
+_gst_data_queue_wait_non_empty (GstDataQueue * queue)
+{
+  GstDataQueuePrivate *priv = queue->priv;
+
+  while (gst_data_queue_locked_is_empty (queue)) {
+    priv->waiting_add = TRUE;
+    g_cond_wait (&priv->item_add, &priv->qlock);
+    priv->waiting_add = FALSE;
+    if (priv->flushing)
+      return FALSE;
+  }
+  return TRUE;
+}
+
 /**
  * gst_data_queue_pop:
  * @queue: a #GstDataQueue.
@@ -462,10 +510,14 @@
  * MT safe.
  *
  * Returns: #TRUE if an @item was successfully retrieved from the @queue.
+ *
+ * Since: 1.2.0
  */
 gboolean
 gst_data_queue_pop (GstDataQueue * queue, GstDataQueueItem ** item)
 {
+  GstDataQueuePrivate *priv = queue->priv;
+
   g_return_val_if_fail (GST_IS_DATA_QUEUE (queue), FALSE);
   g_return_val_if_fail (item != NULL, FALSE);
 
@@ -475,33 +527,28 @@
 
   if (gst_data_queue_locked_is_empty (queue)) {
     GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
-    if (G_LIKELY (queue->emptycallback))
-      queue->emptycallback (queue, queue->checkdata);
+    if (G_LIKELY (priv->emptycallback))
+      priv->emptycallback (queue, priv->checkdata);
     else
       g_signal_emit (queue, gst_data_queue_signals[SIGNAL_EMPTY], 0);
     GST_DATA_QUEUE_MUTEX_LOCK_CHECK (queue, flushing);
 
-    while (gst_data_queue_locked_is_empty (queue)) {
-      queue->waiting_add = TRUE;
-      g_cond_wait (&queue->item_add, &queue->qlock);
-      queue->waiting_add = FALSE;
-      if (queue->flushing)
-        goto flushing;
-    }
+    if (!_gst_data_queue_wait_non_empty (queue))
+      goto flushing;
   }
 
   /* Get the item from the GQueue */
-  *item = gst_queue_array_pop_head (&queue->queue);
+  *item = gst_queue_array_pop_head (priv->queue);
 
   /* update current level counter */
   if ((*item)->visible)
-    queue->cur_level.visible--;
-  queue->cur_level.bytes -= (*item)->size;
-  queue->cur_level.time -= (*item)->duration;
+    priv->cur_level.visible--;
+  priv->cur_level.bytes -= (*item)->size;
+  priv->cur_level.time -= (*item)->duration;
 
   STATUS (queue, "after popping");
-  if (queue->waiting_del)
-    g_cond_signal (&queue->item_del);
+  if (priv->waiting_del)
+    g_cond_signal (&priv->item_del);
 
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 
@@ -523,6 +570,61 @@
 }
 
 /**
+ * gst_data_queue_peek:
+ * @queue: a #GstDataQueue.
+ * @item: pointer to store the returned #GstDataQueueItem.
+ *
+ * Retrieves the first @item available on the @queue without removing it.
+ * If the queue is currently empty, the call will block until at least
+ * one item is available, OR the @queue is set to the flushing state.
+ * MT safe.
+ *
+ * Returns: #TRUE if an @item was successfully retrieved from the @queue.
+ *
+ * Since: 1.2.0
+ */
+gboolean
+gst_data_queue_peek (GstDataQueue * queue, GstDataQueueItem ** item)
+{
+  GstDataQueuePrivate *priv = queue->priv;
+
+  g_return_val_if_fail (GST_IS_DATA_QUEUE (queue), FALSE);
+  g_return_val_if_fail (item != NULL, FALSE);
+
+  GST_DATA_QUEUE_MUTEX_LOCK_CHECK (queue, flushing);
+
+  STATUS (queue, "before peeking");
+
+  if (gst_data_queue_locked_is_empty (queue)) {
+    GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
+    if (G_LIKELY (priv->emptycallback))
+      priv->emptycallback (queue, priv->checkdata);
+    else
+      g_signal_emit (queue, gst_data_queue_signals[SIGNAL_EMPTY], 0);
+    GST_DATA_QUEUE_MUTEX_LOCK_CHECK (queue, flushing);
+
+    if (!_gst_data_queue_wait_non_empty (queue))
+      goto flushing;
+  }
+
+  /* Get the item from the GQueue */
+  *item = gst_queue_array_peek_head (priv->queue);
+
+  STATUS (queue, "after peeking");
+  GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
+
+  return TRUE;
+
+  /* ERRORS */
+flushing:
+  {
+    GST_DEBUG ("queue:%p, we are flushing", queue);
+    GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
+    return FALSE;
+  }
+}
+
+/**
  * gst_data_queue_drop_head:
  * @queue: The #GstDataQueue to drop an item from.
  * @type: The #GType of the item to drop.
@@ -530,6 +632,8 @@
  * Pop and unref the head-most #GstMiniObject with the given #GType.
  *
  * Returns: TRUE if an element was removed.
+ *
+ * Since: 1.2.0
  */
 gboolean
 gst_data_queue_drop_head (GstDataQueue * queue, GType type)
@@ -537,25 +641,24 @@
   gboolean res = FALSE;
   GstDataQueueItem *leak = NULL;
   guint idx;
+  GstDataQueuePrivate *priv = queue->priv;
 
   g_return_val_if_fail (GST_IS_DATA_QUEUE (queue), FALSE);
 
   GST_DEBUG ("queue:%p", queue);
 
   GST_DATA_QUEUE_MUTEX_LOCK (queue);
-  idx =
-      gst_queue_array_find (&queue->queue, is_of_type, GSIZE_TO_POINTER (type));
+  idx = gst_queue_array_find (priv->queue, is_of_type, GSIZE_TO_POINTER (type));
 
   if (idx == -1)
     goto done;
 
-  leak = queue->queue.array[idx];
-  gst_queue_array_drop_element (&queue->queue, idx);
+  leak = gst_queue_array_drop_element (priv->queue, idx);
 
   if (leak->visible)
-    queue->cur_level.visible--;
-  queue->cur_level.bytes -= leak->size;
-  queue->cur_level.time -= leak->duration;
+    priv->cur_level.visible--;
+  priv->cur_level.bytes -= leak->size;
+  priv->cur_level.time -= leak->duration;
 
   leak->destroy (leak);
 
@@ -575,16 +678,20 @@
  *
  * Inform the queue that the limits for the fullness check have changed and that
  * any blocking gst_data_queue_push() should be unblocked to recheck the limts.
+ *
+ * Since: 1.2.0
  */
 void
 gst_data_queue_limits_changed (GstDataQueue * queue)
 {
+  GstDataQueuePrivate *priv = queue->priv;
+
   g_return_if_fail (GST_IS_DATA_QUEUE (queue));
 
   GST_DATA_QUEUE_MUTEX_LOCK (queue);
-  if (queue->waiting_del) {
+  if (priv->waiting_del) {
     GST_DEBUG ("signal del");
-    g_cond_signal (&queue->item_del);
+    g_cond_signal (&priv->item_del);
   }
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 }
@@ -595,11 +702,15 @@
  * @level: the location to store the result
  *
  * Get the current level of the queue.
+ *
+ * Since: 1.2.0
  */
 void
 gst_data_queue_get_level (GstDataQueue * queue, GstDataQueueSize * level)
 {
-  memcpy (level, (&queue->cur_level), sizeof (GstDataQueueSize));
+  GstDataQueuePrivate *priv = queue->priv;
+
+  memcpy (level, (&priv->cur_level), sizeof (GstDataQueueSize));
 }
 
 static void
@@ -618,18 +729,19 @@
     guint prop_id, GValue * value, GParamSpec * pspec)
 {
   GstDataQueue *queue = GST_DATA_QUEUE (object);
+  GstDataQueuePrivate *priv = queue->priv;
 
   GST_DATA_QUEUE_MUTEX_LOCK (queue);
 
   switch (prop_id) {
-    case ARG_CUR_LEVEL_BYTES:
-      g_value_set_uint (value, queue->cur_level.bytes);
+    case PROP_CUR_LEVEL_BYTES:
+      g_value_set_uint (value, priv->cur_level.bytes);
       break;
-    case ARG_CUR_LEVEL_VISIBLE:
-      g_value_set_uint (value, queue->cur_level.visible);
+    case PROP_CUR_LEVEL_VISIBLE:
+      g_value_set_uint (value, priv->cur_level.visible);
       break;
-    case ARG_CUR_LEVEL_TIME:
-      g_value_set_uint64 (value, queue->cur_level.time);
+    case PROP_CUR_LEVEL_TIME:
+      g_value_set_uint64 (value, priv->cur_level.time);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/plugins/elements/gstdataqueue.h b/libs/gst/base/gstdataqueue.h
similarity index 77%
rename from plugins/elements/gstdataqueue.h
rename to libs/gst/base/gstdataqueue.h
index 52fdeaf..3bd76f5 100644
--- a/plugins/elements/gstdataqueue.h
+++ b/libs/gst/base/gstdataqueue.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -24,7 +24,6 @@
 #define __GST_DATA_QUEUE_H__
 
 #include <gst/gst.h>
-#include "gstqueuearray.h"
 
 G_BEGIN_DECLS
 #define GST_TYPE_DATA_QUEUE \
@@ -41,6 +40,7 @@
 typedef struct _GstDataQueueClass GstDataQueueClass;
 typedef struct _GstDataQueueSize GstDataQueueSize;
 typedef struct _GstDataQueueItem GstDataQueueItem;
+typedef struct _GstDataQueuePrivate GstDataQueuePrivate;
 
 /**
  * GstDataQueueItem:
@@ -66,6 +66,9 @@
 
   /* user supplied destroy function */
   GDestroyNotify destroy;
+
+  /* < private > */
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 /**
@@ -113,24 +116,8 @@
   GObject object;
 
   /*< private >*/
-  /* the array of data we're keeping our grubby hands on */
-  GstQueueArray queue;
-
-  GstDataQueueSize cur_level;   /* size of the queue */
-  GstDataQueueCheckFullFunction checkfull;      /* Callback to check if the queue is full */
-  gpointer *checkdata;
-
-  GMutex qlock;                /* lock for queue (vs object lock) */
-  gboolean waiting_add;
-  GCond item_add;              /* signals buffers now available for reading */
-  gboolean waiting_del;
-  GCond item_del;              /* signals space now available for writing */
-  gboolean flushing;            /* indicates whether conditions where signalled because
-                                 * of external flushing */
-  GstDataQueueFullCallback fullcallback;
-  GstDataQueueEmptyCallback emptycallback;
-
-  /* gpointer _gst_reserved[GST_PADDING]; */
+  GstDataQueuePrivate *priv;
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstDataQueueClass
@@ -141,47 +128,33 @@
   void (*empty) (GstDataQueue * queue);
   void (*full) (GstDataQueue * queue);
 
-  /* gpointer _gst_reserved[GST_PADDING]; */
+  gpointer _gst_reserved[GST_PADDING];
 };
 
-G_GNUC_INTERNAL
 GType gst_data_queue_get_type (void);
 
-G_GNUC_INTERNAL
 GstDataQueue * gst_data_queue_new            (GstDataQueueCheckFullFunction checkfull,
-                                              gpointer checkdata) G_GNUC_MALLOC;
-
-G_GNUC_INTERNAL
-GstDataQueue * gst_data_queue_new_full       (GstDataQueueCheckFullFunction checkfull,
 					      GstDataQueueFullCallback fullcallback,
 					      GstDataQueueEmptyCallback emptycallback,
 					      gpointer checkdata) G_GNUC_MALLOC;
 
-G_GNUC_INTERNAL
 gboolean       gst_data_queue_push           (GstDataQueue * queue, GstDataQueueItem * item);
 
-G_GNUC_INTERNAL
 gboolean       gst_data_queue_pop            (GstDataQueue * queue, GstDataQueueItem ** item);
+gboolean       gst_data_queue_peek           (GstDataQueue * queue, GstDataQueueItem ** item);
 
-G_GNUC_INTERNAL
 void           gst_data_queue_flush          (GstDataQueue * queue);
 
-G_GNUC_INTERNAL
 void           gst_data_queue_set_flushing   (GstDataQueue * queue, gboolean flushing);
 
-G_GNUC_INTERNAL
 gboolean       gst_data_queue_drop_head      (GstDataQueue * queue, GType type);
 
-G_GNUC_INTERNAL
 gboolean       gst_data_queue_is_full        (GstDataQueue * queue);
 
-G_GNUC_INTERNAL
 gboolean       gst_data_queue_is_empty       (GstDataQueue * queue);
 
-G_GNUC_INTERNAL
 void           gst_data_queue_get_level      (GstDataQueue * queue, GstDataQueueSize *level);
 
-G_GNUC_INTERNAL
 void           gst_data_queue_limits_changed (GstDataQueue * queue);
 
 G_END_DECLS
diff --git a/libs/gst/base/gstindex.c b/libs/gst/base/gstindex.c
index a1b9d0e..3786e95 100644
--- a/libs/gst/base/gstindex.c
+++ b/libs/gst/base/gstindex.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/base/gstindex.h b/libs/gst/base/gstindex.h
index 7e22efc..b943efb 100644
--- a/libs/gst/base/gstindex.h
+++ b/libs/gst/base/gstindex.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_INDEX_H__
diff --git a/libs/gst/base/gstmemindex.c b/libs/gst/base/gstmemindex.c
index aaeab12..b667447 100644
--- a/libs/gst/base/gstmemindex.c
+++ b/libs/gst/base/gstmemindex.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/libs/gst/base/gstpushsrc.c b/libs/gst/base/gstpushsrc.c
index a1bfa0a..f89fa0a 100644
--- a/libs/gst/base/gstpushsrc.c
+++ b/libs/gst/base/gstpushsrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/base/gstpushsrc.h b/libs/gst/base/gstpushsrc.h
index b936d83..aabba00 100644
--- a/libs/gst/base/gstpushsrc.h
+++ b/libs/gst/base/gstpushsrc.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PUSH_SRC_H__
diff --git a/libs/gst/base/gstqueuearray.c b/libs/gst/base/gstqueuearray.c
new file mode 100644
index 0000000..4b83959
--- /dev/null
+++ b/libs/gst/base/gstqueuearray.c
@@ -0,0 +1,341 @@
+/* GStreamer
+ * Copyright (C) 2009 Edward Hervey <bilboed@bilboed.com>
+ *
+ * gstqueuearray.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:gstqueuearray
+ * @short_description: Array based queue object
+ *
+ * #GstQueueArray is an object that provides standard queue functionality
+ * based on an array instead of linked lists. This reduces the overhead
+ * caused by memory managment by a large factor.
+ */
+
+
+#include <string.h>
+#include <gst/gst.h>
+#include "gstqueuearray.h"
+
+struct _GstQueueArray
+{
+  /* < private > */
+  gpointer *array;
+  guint size;
+  guint head;
+  guint tail;
+  guint length;
+};
+
+/**
+ * gst_queue_array_new:
+ * @initial_size: Initial size of the new queue
+ *
+ * Allocates a new #GstQueueArray object with an initial
+ * queue size of @initial_size.
+ *
+ * Returns: a new #GstQueueArray object
+ *
+ * Since: 1.2.0
+ */
+GstQueueArray *
+gst_queue_array_new (guint initial_size)
+{
+  GstQueueArray *array;
+
+  array = g_slice_new (GstQueueArray);
+  array->size = initial_size;
+  array->array = g_new0 (gpointer, initial_size);
+  array->head = 0;
+  array->tail = 0;
+  array->length = 0;
+  return array;
+}
+
+
+/**
+ * gst_queue_array_free:
+ * @array: a #GstQueueArray object
+ *
+ * Frees queue @array and all memory associated to it.
+ *
+ * Since: 1.2.0
+ */
+void
+gst_queue_array_free (GstQueueArray * array)
+{
+  g_free (array->array);
+  g_slice_free (GstQueueArray, array);
+}
+
+/**
+ * gst_queue_array_pop_head:
+ * @array: a #GstQueueArray object
+ *
+ * Returns and head of the queue @array and removes
+ * it from the queue.
+ *
+ * Returns: The head of the queue
+ *
+ * Since: 1.2.0
+ */
+gpointer
+gst_queue_array_pop_head (GstQueueArray * array)
+{
+  gpointer ret;
+
+  /* empty array */
+  if (G_UNLIKELY (array->length == 0))
+    return NULL;
+  ret = array->array[array->head];
+  array->head++;
+  array->head %= array->size;
+  array->length--;
+  return ret;
+}
+
+/**
+ * gst_queue_array_pop_head:
+ * @array: a #GstQueueArray object
+ *
+ * Returns and head of the queue @array and does not
+ * remove it from the queue.
+ *
+ * Returns: The head of the queue
+ *
+ * Since: 1.2.0
+ */
+gpointer
+gst_queue_array_peek_head (GstQueueArray * array)
+{
+  /* empty array */
+  if (G_UNLIKELY (array->length == 0))
+    return NULL;
+  return array->array[array->head];
+}
+
+/**
+ * gst_queue_array_push_tail:
+ * @array: a #GstQueueArray object
+ * @data: object to push
+ *
+ * Pushes @data to the tail of the queue @array.
+ *
+ * Since: 1.2.0
+ */
+void
+gst_queue_array_push_tail (GstQueueArray * array, gpointer data)
+{
+  /* Check if we need to make room */
+  if (G_UNLIKELY (array->length == array->size)) {
+    /* newsize is 50% bigger */
+    guint newsize = (3 * array->size) / 2;
+
+    /* copy over data */
+    if (array->tail != 0) {
+      gpointer *array2 = g_new0 (gpointer, newsize);
+      guint t1 = array->head;
+      guint t2 = array->size - array->head;
+
+      /* [0-----TAIL][HEAD------SIZE]
+       *
+       * We want to end up with
+       * [HEAD------------------TAIL][----FREEDATA------NEWSIZE]
+       *
+       * 1) move [HEAD-----SIZE] part to beginning of new array
+       * 2) move [0-------TAIL] part new array, after previous part
+       */
+
+      memcpy (array2, &array->array[array->head], t2 * sizeof (gpointer));
+      memcpy (&array2[t2], array->array, t1 * sizeof (gpointer));
+
+      g_free (array->array);
+      array->array = array2;
+      array->head = 0;
+    } else {
+      /* Fast path, we just need to grow the array */
+      array->array = g_renew (gpointer, array->array, newsize);
+    }
+    array->tail = array->size;
+    array->size = newsize;
+  }
+
+  array->array[array->tail] = data;
+  array->tail++;
+  array->tail %= array->size;
+  array->length++;
+}
+
+/**
+ * gst_queue_array_is_empty:
+ * @array: a #GstQueueArray object
+ *
+ * Checks if the queue @array is empty.
+ *
+ * Returns: %TRUE if the queue @array is empty
+ *
+ * Since: 1.2.0
+ */
+gboolean
+gst_queue_array_is_empty (GstQueueArray * array)
+{
+  return (array->length == 0);
+}
+
+/**
+ * gst_queue_array_drop_element:
+ * @array: a #GstQueueArray object
+ * @idx: index to drop
+ *
+ * Drops the queue element at position @idx from queue @array.
+ *
+ * Returns: the dropped element
+ *
+ * Since: 1.2.0
+ */
+gpointer
+gst_queue_array_drop_element (GstQueueArray * array, guint idx)
+{
+  int first_item_index, last_item_index;
+  gpointer element;
+
+  g_return_val_if_fail (array->length > 0, NULL);
+  g_return_val_if_fail (idx < array->size, NULL);
+
+  first_item_index = array->head;
+
+  /* tail points to the first free spot */
+  last_item_index = (array->tail - 1 + array->size) % array->size;
+
+  element = array->array[idx];
+
+  /* simple case idx == first item */
+  if (idx == first_item_index) {
+    /* move the head plus one */
+    array->head++;
+    array->head %= array->size;
+    array->length--;
+    return element;
+  }
+
+  /* simple case idx == last item */
+  if (idx == last_item_index) {
+    /* move tail minus one, potentially wrapping */
+    array->tail = (array->tail - 1 + array->size) % array->size;
+    array->length--;
+    return element;
+  }
+
+  /* non-wrapped case */
+  if (first_item_index < last_item_index) {
+    g_assert (first_item_index < idx && idx < last_item_index);
+    /* move everything beyond idx one step towards zero in array */
+    memmove (&array->array[idx],
+        &array->array[idx + 1], (last_item_index - idx) * sizeof (gpointer));
+    /* tail might wrap, ie if tail == 0 (and last_item_index == size) */
+    array->tail = (array->tail - 1 + array->size) % array->size;
+    array->length--;
+    return element;
+  }
+
+  /* only wrapped cases left */
+  g_assert (first_item_index > last_item_index);
+
+  if (idx < last_item_index) {
+    /* idx is before last_item_index, move data towards zero */
+    memmove (&array->array[idx],
+        &array->array[idx + 1], (last_item_index - idx) * sizeof (gpointer));
+    /* tail should not wrap in this case! */
+    g_assert (array->tail > 0);
+    array->tail--;
+    array->length--;
+    return element;
+  }
+
+  if (idx > first_item_index) {
+    element = array->array[idx];
+    /* idx is after first_item_index, move data to higher indices */
+    memmove (&array->array[first_item_index + 1],
+        &array->array[first_item_index],
+        (idx - first_item_index) * sizeof (gpointer));
+    array->head++;
+    /* head should not wrap in this case! */
+    g_assert (array->head < array->size);
+    array->length--;
+    return element;
+  }
+
+  g_return_val_if_reached (NULL);
+}
+
+/**
+ * gst_queue_array_find:
+ * @array: a #GstQueueArray object
+ * @func: (allow-none): comparison function, or %NULL to find @data by value
+ * @data: data for comparison function
+ *
+ * Finds an element in the queue @array, either by comparing every element
+ * with @func or by looking up @data if no compare function @func is provided,
+ * and returning the index of the found element.
+ *
+ * Note that the index is not 0-based, but an internal index number with a
+ * random offset. The index can be used in connection with
+ * gst_queue_array_drop_element(). FIXME: return index 0-based and make
+ * _drop_element() take a 0-based index.
+ *
+ * Returns: Index of the found element or -1 if nothing was found.
+ *
+ * Since: 1.2.0
+ */
+guint
+gst_queue_array_find (GstQueueArray * array, GCompareFunc func, gpointer data)
+{
+  guint i;
+
+  if (func != NULL) {
+    /* Scan from head to tail */
+    for (i = 0; i < array->length; i++) {
+      if (func (array->array[(i + array->head) % array->size], data) == 0)
+        return (i + array->head) % array->size;
+    }
+  } else {
+    for (i = 0; i < array->length; i++) {
+      if (array->array[(i + array->head) % array->size] == data)
+        return (i + array->head) % array->size;
+    }
+  }
+
+  return -1;
+}
+
+/**
+ * gst_queue_array_get_length:
+ * @array: a #GstQueueArray object
+ *
+ * Returns the length of the queue @array
+ *
+ * Returns: the length of the queue @array.
+ *
+ * Since: 1.2.0
+ */
+guint
+gst_queue_array_get_length (GstQueueArray * array)
+{
+  return array->length;
+}
diff --git a/libs/gst/base/gstqueuearray.h b/libs/gst/base/gstqueuearray.h
new file mode 100644
index 0000000..b640886
--- /dev/null
+++ b/libs/gst/base/gstqueuearray.h
@@ -0,0 +1,50 @@
+/* GStreamer
+ * Copyright (C) 2009-2010 Edward Hervey <bilboed@bilboed.com>
+ *
+ * gstqueuearray.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <glib.h>
+
+#ifndef __GST_QUEUE_ARRAY_H__
+#define __GST_QUEUE_ARRAY_H__
+
+typedef struct _GstQueueArray GstQueueArray;
+
+GstQueueArray * gst_queue_array_new       (guint initial_size);
+
+void            gst_queue_array_free      (GstQueueArray * array);
+
+gpointer        gst_queue_array_pop_head  (GstQueueArray * array);
+gpointer        gst_queue_array_peek_head (GstQueueArray * array);
+
+void            gst_queue_array_push_tail (GstQueueArray * array,
+                                           gpointer        data);
+
+gboolean        gst_queue_array_is_empty  (GstQueueArray * array);
+
+gpointer        gst_queue_array_drop_element (GstQueueArray * array,
+                                              guint           idx);
+
+guint           gst_queue_array_find (GstQueueArray * array,
+                                      GCompareFunc    func,
+                                      gpointer        data);
+
+guint           gst_queue_array_get_length (GstQueueArray * array);
+
+#endif
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c
index 12ff79f..f4a458e 100644
--- a/libs/gst/base/gsttypefindhelper.c
+++ b/libs/gst/base/gsttypefindhelper.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/base/gsttypefindhelper.h b/libs/gst/base/gsttypefindhelper.h
index 7919325..9447f9b 100644
--- a/libs/gst/base/gsttypefindhelper.h
+++ b/libs/gst/base/gsttypefindhelper.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TYPEFINDHELPER_H__
diff --git a/libs/gst/check/Makefile.am b/libs/gst/check/Makefile.am
index c2c6976..1aca0f0 100644
--- a/libs/gst/check/Makefile.am
+++ b/libs/gst/check/Makefile.am
@@ -11,7 +11,8 @@
 libgstcheck_@GST_API_VERSION@_la_SOURCES =	\
 	gstbufferstraw.c			\
 	gstcheck.c				\
-	gstconsistencychecker.c
+	gstconsistencychecker.c			\
+	gsttestclock.c
 
 libgstcheck_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) \
 	-I$(top_builddir)/libs \
@@ -26,10 +27,12 @@
 libgstcheck_@GST_API_VERSION@includedir =		\
 	$(includedir)/gstreamer-@GST_API_VERSION@/gst/check
 
-libgstcheck_@GST_API_VERSION@include_HEADERS =	 \
+libgstcheck_@GST_API_VERSION@include_HEADERS =	\
+	check.h					\
 	gstbufferstraw.h			\
 	gstcheck.h				\
-	gstconsistencychecker.h
+	gstconsistencychecker.h			\
+	gsttestclock.h
 
 nodist_libgstcheck_@GST_API_VERSION@include_HEADERS =	\
 	internal-check.h	
@@ -76,6 +79,8 @@
 	gst_check_message_error \
 	gst_check_run_suite \
 	gst_check_setup_element \
+	gst_check_setup_events \
+	gst_check_setup_events_with_stream_id \
 	gst_check_setup_sink_pad \
 	gst_check_setup_sink_pad_by_name \
 	gst_check_setup_src_pad \
@@ -87,7 +92,19 @@
 	gst_consistency_checker_add_pad \
 	gst_consistency_checker_new \
 	gst_consistency_checker_reset \
-	gst_consistency_checker_free
+	gst_consistency_checker_free \
+	gst_test_clock_get_type \
+	gst_test_clock_new \
+	gst_test_clock_new_with_start_time \
+	gst_test_clock_set_time \
+	gst_test_clock_advance_time \
+	gst_test_clock_peek_id_count \
+	gst_test_clock_has_id \
+	gst_test_clock_peek_next_pending_id \
+	gst_test_clock_wait_for_next_pending_id \
+	gst_test_clock_wait_for_pending_id_count \
+	gst_test_clock_process_next_clock_id \
+	gst_test_clock_get_next_entry_time
 
 LIBGSTCHECK_EXPORTED_SYMBOLS = \
 	$(LIBGSTCHECK_EXPORTED_VARS) \
@@ -101,7 +118,7 @@
 	  echo $$s; \
 	done;
 
-$(SYMBOLS_FILE):
+$(SYMBOLS_FILE): $(libgstcheck_@GST_API_VERSION@include_HEADERS) libcheck/check.h
 	$(AM_V_GEN)rm -f $(SYMBOLS_FILE) 2>/dev/null; \
 	for s in $(LIBGSTCHECK_EXPORTED_SYMBOLS) $(CHECK_SYMS); do \
 	  echo $$s >> $(SYMBOLS_FILE); \
@@ -113,12 +130,10 @@
 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_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 \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstCheck \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
@@ -127,10 +142,9 @@
 		-I$(top_srcdir)/libs \
 		-I$(top_builddir) \
 		-I$(top_builddir)/libs \
-		$(gir_cincludes) \
+		--c-include "gst/check/check.h" \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
 		--library=libgstcheck-@GST_API_VERSION@.la \
 		--include=Gst-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
diff --git a/libs/gst/check/Makefile.in b/libs/gst/check/Makefile.in
index d371e47..07201ac 100644
--- a/libs/gst/check/Makefile.in
+++ b/libs/gst/check/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,15 @@
 target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/check
-DIST_COMMON = $(libgstcheck_@GST_API_VERSION@include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstcheck_@GST_API_VERSION@include_HEADERS)
 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 \
@@ -88,12 +115,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -136,16 +165,30 @@
 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-gstconsistencychecker.lo \
+	libgstcheck_@GST_API_VERSION@_la-gsttestclock.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
+am__v_lt_1 = 
 libgstcheck_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstcheck_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -158,29 +201,26 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 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 \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -191,9 +231,29 @@
 	$(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=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -321,15 +381,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -339,11 +395,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -351,6 +405,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -413,6 +468,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -514,7 +570,8 @@
 libgstcheck_@GST_API_VERSION@_la_SOURCES = \
 	gstbufferstraw.c			\
 	gstcheck.c				\
-	gstconsistencychecker.c
+	gstconsistencychecker.c			\
+	gsttestclock.c
 
 libgstcheck_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) \
 	-I$(top_builddir)/libs \
@@ -532,9 +589,11 @@
 	$(includedir)/gstreamer-@GST_API_VERSION@/gst/check
 
 libgstcheck_@GST_API_VERSION@include_HEADERS = \
+	check.h					\
 	gstbufferstraw.h			\
 	gstcheck.h				\
-	gstconsistencychecker.h
+	gstconsistencychecker.h			\
+	gsttestclock.h
 
 nodist_libgstcheck_@GST_API_VERSION@include_HEADERS = \
 	internal-check.h	
@@ -572,6 +631,8 @@
 	gst_check_message_error \
 	gst_check_run_suite \
 	gst_check_setup_element \
+	gst_check_setup_events \
+	gst_check_setup_events_with_stream_id \
 	gst_check_setup_sink_pad \
 	gst_check_setup_sink_pad_by_name \
 	gst_check_setup_src_pad \
@@ -583,7 +644,19 @@
 	gst_consistency_checker_add_pad \
 	gst_consistency_checker_new \
 	gst_consistency_checker_reset \
-	gst_consistency_checker_free
+	gst_consistency_checker_free \
+	gst_test_clock_get_type \
+	gst_test_clock_new \
+	gst_test_clock_new_with_start_time \
+	gst_test_clock_set_time \
+	gst_test_clock_advance_time \
+	gst_test_clock_peek_id_count \
+	gst_test_clock_has_id \
+	gst_test_clock_peek_next_pending_id \
+	gst_test_clock_wait_for_next_pending_id \
+	gst_test_clock_wait_for_pending_id_count \
+	gst_test_clock_process_next_clock_id \
+	gst_test_clock_get_next_entry_time
 
 LIBGSTCHECK_EXPORTED_SYMBOLS = \
 	$(LIBGSTCHECK_EXPORTED_VARS) \
@@ -598,9 +671,6 @@
 @HAVE_INTROSPECTION_TRUE@    $(patsubst %,$(builddir)/%, $(nodist_libgstcheck_@GST_API_VERSION@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
 # install anything - we need to install inside our prefix.
@@ -643,6 +713,7 @@
 $(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)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -669,12 +740,15 @@
 
 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
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -687,6 +761,7 @@
 @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@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gsttestclock.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -730,6 +805,13 @@
 @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) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo `test -f 'gstconsistencychecker.c' || echo '$(srcdir)/'`gstconsistencychecker.c
 
+libgstcheck_@GST_API_VERSION@_la-gsttestclock.lo: gsttestclock.c
+@am__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-gsttestclock.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gsttestclock.Tpo -c -o libgstcheck_@GST_API_VERSION@_la-gsttestclock.lo `test -f 'gsttestclock.c' || echo '$(srcdir)/'`gsttestclock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gsttestclock.Tpo $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gsttestclock.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttestclock.c' object='libgstcheck_@GST_API_VERSION@_la-gsttestclock.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) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_API_VERSION@_la-gsttestclock.lo `test -f 'gsttestclock.c' || echo '$(srcdir)/'`gsttestclock.c
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -821,22 +903,25 @@
 	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.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -851,57 +936,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -917,12 +957,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -934,15 +969,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -951,6 +982,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1129,19 +1175,18 @@
 	uninstall-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-	ctags-recursive install install-am install-strip \
-	tags-recursive
+.MAKE: $(am__recursive_targets) all check install install-am \
+	install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
-	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-girDATA install-html install-html-am \
-	install-info install-info-am install-libLTLIBRARIES \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libLTLIBRARIES \
+	clean-libtool cscopelist-am ctags ctags-am 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-girDATA \
+	install-html install-html-am install-info install-info-am \
+	install-libLTLIBRARIES \
 	install-libgstcheck_@GST_API_VERSION@includeHEADERS \
 	install-man \
 	install-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
@@ -1150,7 +1195,7 @@
 	installcheck-am installdirs installdirs-am maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstcheck_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
@@ -1169,7 +1214,7 @@
 	  echo $$s; \
 	done;
 
-$(SYMBOLS_FILE):
+$(SYMBOLS_FILE): $(libgstcheck_@GST_API_VERSION@include_HEADERS) libcheck/check.h
 	$(AM_V_GEN)rm -f $(SYMBOLS_FILE) 2>/dev/null; \
 	for s in $(LIBGSTCHECK_EXPORTED_SYMBOLS) $(CHECK_SYMS); do \
 	  echo $$s >> $(SYMBOLS_FILE); \
@@ -1177,7 +1222,7 @@
 
 @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@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstCheck \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
@@ -1186,10 +1231,9 @@
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir) \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/libs \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/check/check.h" \
 @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_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" \
diff --git a/libs/gst/check/check.h b/libs/gst/check/check.h
new file mode 100644
index 0000000..554ff93
--- /dev/null
+++ b/libs/gst/check/check.h
@@ -0,0 +1,30 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * check.h: single include header for gst-check library
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_CHECK__H__
+#define __GST_CHECK__H__
+
+#include <gst/check/gstbufferstraw.h>
+#include <gst/check/gstcheck.h>
+#include <gst/check/gstconsistencychecker.h>
+#include <gst/check/gsttestclock.h>
+
+#endif /* __GST_CHECK__H__ */
diff --git a/libs/gst/check/gstbufferstraw.c b/libs/gst/check/gstbufferstraw.c
index 8e55940..2a44090 100644
--- a/libs/gst/check/gstbufferstraw.c
+++ b/libs/gst/check/gstbufferstraw.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/check/gstbufferstraw.h b/libs/gst/check/gstbufferstraw.h
index ed49704..84ccc7f 100644
--- a/libs/gst/check/gstbufferstraw.h
+++ b/libs/gst/check/gstbufferstraw.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_BUFFER_STRAW_H__
diff --git a/libs/gst/check/gstcheck.c b/libs/gst/check/gstcheck.c
index bb92308..c62e72d 100644
--- a/libs/gst/check/gstcheck.c
+++ b/libs/gst/check/gstcheck.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstcheck
@@ -27,6 +27,9 @@
  * These macros and functions are for internal use of the unit tests found
  * inside the 'check' directories of various GStreamer packages.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "gstcheck.h"
 
@@ -115,6 +118,8 @@
 void
 gst_check_init (int *argc, char **argv[])
 {
+  guint timeout_multiplier = 1;
+
   gst_init (argc, argv);
 
   GST_DEBUG_CATEGORY_INIT (check_debug, "check", 0, "check regression tests");
@@ -136,6 +141,28 @@
       gst_check_log_critical_func, NULL);
 
   print_plugins ();
+
+#ifdef TARGET_CPU
+  GST_INFO ("target CPU: %s", TARGET_CPU);
+#endif
+
+#ifdef HAVE_CPU_ARM
+  timeout_multiplier = 10;
+#endif
+
+  if (timeout_multiplier > 1) {
+    const gchar *tmult = g_getenv ("CK_TIMEOUT_MULTIPLIER");
+
+    if (tmult == NULL) {
+      gchar num_str[32];
+
+      g_snprintf (num_str, sizeof (num_str), "%d", timeout_multiplier);
+      GST_INFO ("slow CPU, setting CK_TIMEOUT_MULTIPLIER to %s", num_str);
+      g_setenv ("CK_TIMEOUT_MULTIPLIER", num_str, TRUE);
+    } else {
+      GST_INFO ("CK_TIMEOUT_MULTIPLIER already set to '%s'", tmult);
+    }
+  }
 }
 
 /* message checking */
@@ -411,14 +438,13 @@
 buffer_event_function (GstPad * pad, GstObject * noparent, GstEvent * event)
 {
   if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) {
-    GstCaps *event_caps, *current_caps;
+    GstCaps *event_caps;
+    GstCaps *expected_caps = gst_pad_get_element_private (pad);
 
-    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 (expected_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);
+    fail_unless (gst_caps_is_equal_fixed (event_caps, expected_caps));
     gst_event_unref (event);
     return TRUE;
   }
@@ -474,8 +500,7 @@
   /* 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));
+  gst_check_setup_events (src_pad, element, caps_in, GST_FORMAT_BYTES);
   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,
@@ -502,9 +527,10 @@
     /* 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)
+    if (caps_out) {
+      gst_pad_set_element_private (sink_pad, 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,
@@ -691,3 +717,54 @@
   g_strfreev (funcs);
   return res;
 }
+
+/**
+ * gst_check_setup_events_with_stream_id:
+ * @srcpad: The src #GstPad to push on
+ * @element: The #GstElement use to create the stream id
+ * @caps: (allow-none): #GstCaps in case caps event must be sent
+ * @format: The #GstFormat of the default segment to send
+ * @stream_id: A unique identifier for the stream
+ *
+ * Push stream-start, caps and segment event, which concist of the minimum
+ * required events to allow streaming. Caps is optional to allow raw src
+ * testing.
+ */
+void
+gst_check_setup_events_with_stream_id (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format, const gchar * stream_id)
+{
+  GstSegment segment;
+
+  gst_segment_init (&segment, format);
+
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start (stream_id)));
+  if (caps)
+    fail_unless (gst_pad_push_event (srcpad, gst_event_new_caps (caps)));
+  fail_unless (gst_pad_push_event (srcpad, gst_event_new_segment (&segment)));
+}
+
+/**
+ * gst_check_setup_events:
+ * @srcpad: The src #GstPad to push on
+ * @element: The #GstElement use to create the stream id
+ * @caps: (allow-none): #GstCaps in case caps event must be sent
+ * @format: The #GstFormat of the default segment to send
+ *
+ * Push stream-start, caps and segment event, which concist of the minimum
+ * required events to allow streaming. Caps is optional to allow raw src
+ * testing. If @element has more than one src or sink pad, use
+ * gst_check_setup_events_with_stream_id() instead.
+ */
+void
+gst_check_setup_events (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format)
+{
+  gchar *stream_id;
+
+  stream_id = gst_pad_create_stream_id (srcpad, element, NULL);
+  gst_check_setup_events_with_stream_id (srcpad, element, caps, format,
+      stream_id);
+  g_free (stream_id);
+}
diff --git a/libs/gst/check/gstcheck.h b/libs/gst/check/gstcheck.h
index cd49ab0..7b4b9d4 100644
--- a/libs/gst/check/gstcheck.h
+++ b/libs/gst/check/gstcheck.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CHECK_H__
@@ -94,6 +94,11 @@
 void gst_check_abi_list (GstCheckABIStruct list[], gboolean have_abi_sizes);
 gint gst_check_run_suite (Suite * suite, const gchar * name,
     const gchar * fname);
+void gst_check_setup_events (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format);
+void gst_check_setup_events_with_stream_id (GstPad * srcpad,
+    GstElement * element, GstCaps * caps, GstFormat format,
+    const gchar * stream_id);
 
 #define fail_unless_message_error(msg, domain, code)            \
 gst_check_message_error (msg, GST_MESSAGE_ERROR,                \
@@ -150,6 +155,38 @@
 #define assert_equals_int(a, b) fail_unless_equals_int(a, b)
 
 /**
+ * fail_unless_equals_int_hex:
+ * @a: a #gint value or expression
+ * @b: a #gint value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this is not the
+ * case, printing both expressions and the values they evaluated to in
+ * hexadecimal format. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define fail_unless_equals_int_hex(a, b)                                \
+G_STMT_START {								\
+  int first = a;							\
+  int second = b;							\
+  fail_unless(first == second,						\
+    "'" #a "' (0x%08x) is not equal to '" #b"' (0x%08x)", first, second);\
+} G_STMT_END;
+
+/**
+ * assert_equals_int_hex:
+ * @a: a #gint value or expression
+ * @b: a #gint value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this is not the
+ * case, printing both expressions and the values they evaluated to in
+ * hexadecimal format. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define assert_equals_int_hex(a, b) fail_unless_equals_int_hex(a, b)
+
+/**
  * fail_unless_equals_int64:
  * @a: a #gint64 value or expression
  * @b: a #gint64 value or expression
@@ -178,6 +215,37 @@
 #define assert_equals_int64(a, b) fail_unless_equals_int64(a, b)
 
 /**
+ * fail_unless_equals_int64_hex:
+ * @a: a #gint64 value or expression
+ * @b: a #gint64 value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this is not the
+ * case, printing both expressions and the values they evaluated to in
+ * hexadecimal format. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define fail_unless_equals_int64_hex(a, b)                              \
+G_STMT_START {								\
+  gint64 first = a;							\
+  gint64 second = b;							\
+  fail_unless(first == second,						\
+    "'" #a "' (0x%016x) is not equal to '" #b"' (0x%016x)", first, second);\
+} G_STMT_END;
+/**
+ * assert_equals_int64_hex:
+ * @a: a #gint64 value or expression
+ * @b: a #gint64 value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this is not the
+ * case, printing both expressions and the values they evaluated to in
+ * hexadecimal format. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define assert_equals_int64_hex(a,b) fail_unless_equals_int64_hex(a,b)
+
+/**
  * fail_unless_equals_uint64:
  * @a: a #guint64 value or expression
  * @b: a #guint64 value or expression
@@ -206,6 +274,37 @@
 #define assert_equals_uint64(a, b) fail_unless_equals_uint64(a, b)
 
 /**
+ * fail_unless_equals_uint64_hex:
+ * @a: a #gint64 value or expression
+ * @b: a #gint64 value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this is not the
+ * case, printing both expressions and the values they evaluated to in
+ * hexadecimal format. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define fail_unless_equals_uint64_hex(a, b)                             \
+G_STMT_START {								\
+  guint64 first = a;							\
+  guint64 second = b;							\
+  fail_unless(first == second,						\
+    "'" #a "' (0x%016x) is not equal to '" #b"' (0x%016x)", first, second);\
+} G_STMT_END;
+/**
+ * assert_equals_uint64_hex:
+ * @a: a #guint64 value or expression
+ * @b: a #guint64 value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this is not the
+ * case, printing both expressions and the values they evaluated to in
+ * hexadecimal format. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define assert_equals_uint64_hex(a,b) fail_unless_equals_uint64_hex(a,b)
+
+/**
  * fail_unless_equals_string:
  * @a: a string literal or expression
  * @b: a string literal or expression
@@ -262,6 +361,37 @@
  */
 #define assert_equals_float(a, b) fail_unless_equals_float(a, b)
 
+/**
+ * fail_unless_equals_pointer:
+ * @a: a pointer value or expression
+ * @b: a pointer value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this
+ * is not the case, printing both expressions and the values they
+ * evaluated to. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define fail_unless_equals_pointer(a, b)                          \
+G_STMT_START {                                                    \
+  gpointer first = a;                                             \
+  gpointer second = b;                                            \
+  fail_unless(first == second,                                    \
+    "'" #a "' (%p) is not equal to '" #b "' (%p)", first, second);\
+} G_STMT_END;
+
+/**
+ * assert_equals_pointer:
+ * @a: a pointer value or expression
+ * @b: a pointer value or expression
+ *
+ * This macro checks that @a and @b are equal and aborts if this
+ * is not the case, printing both expressions and the values they
+ * evaluated to. This macro is for use in unit tests.
+ *
+ * Since: 1.2
+ */
+#define assert_equals_pointer(a, b) fail_unless_equals_pointer(a, b)
 
 /***
  * thread test macros and variables
@@ -445,9 +575,15 @@
 
 /* add define to skip broken tests */
 #define tcase_skip_broken_test(chain,test_func) \
-  if (0) { tcase_add_test(chain,test_func); } else { \
+G_STMT_START {                                                  \
+  const char *env = g_getenv ("GST_CHECKS");                    \
+                                                                \
+  if (env != NULL && strstr (env, G_STRINGIFY (test_func))) {   \
+    tcase_add_test(chain,test_func);                            \
+  } else {                                                      \
     g_printerr ("FIXME: skipping test %s because it's broken\n", G_STRINGIFY (test_func)); \
-  }
+  } \
+} G_STMT_END
 
 G_END_DECLS
 
diff --git a/libs/gst/check/gstconsistencychecker.c b/libs/gst/check/gstconsistencychecker.c
index 48b2526..2e98537 100644
--- a/libs/gst/check/gstconsistencychecker.c
+++ b/libs/gst/check/gstconsistencychecker.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/check/gstconsistencychecker.h b/libs/gst/check/gstconsistencychecker.h
index 35b675c..875db6b 100644
--- a/libs/gst/check/gstconsistencychecker.h
+++ b/libs/gst/check/gstconsistencychecker.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CONSISTENCY_CHECKER_H__
diff --git a/libs/gst/check/gsttestclock.c b/libs/gst/check/gsttestclock.c
new file mode 100644
index 0000000..b736f7c
--- /dev/null
+++ b/libs/gst/check/gsttestclock.c
@@ -0,0 +1,921 @@
+/* GstTestClock - A deterministic clock for GStreamer unit tests
+ *
+ * Copyright (C) 2008 Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
+ * Copyright (C) 2012 Sebastian Rasmussen <sebastian.rasmussen@axis.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:gsttestclock
+ * @short_description: Controllable, deterministic clock for GStreamer unit tests
+ * @see_also: #GstSystemClock, #GstClock
+ *
+ * GstTestClock is an implementation of #GstClock which has different
+ * behaviour compared to #GstSystemClock. Time for #GstSystemClock advances
+ * according to the system time, while time for #GstTestClock changes only
+ * when gst_test_clock_set_time() or gst_test_clock_advance_time() are
+ * called. #GstTestClock provides unit tests with the possibility to
+ * precisely advance the time in a deterministic manner, independent of the
+ * system time or any other external factors.
+ *
+ * <example>
+ * <title>Advancing the time of a #GstTestClock</title>
+ *   <programlisting language="c">
+ *   #include &lt;gst/gst.h&gt;
+ *   #include &lt;gst/check/gsttestclock.h&gt;
+ *
+ *   GstClock *clock;
+ *   GstTestClock *test_clock;
+ *
+ *   clock = gst_test_clock_new ();
+ *   test_clock = GST_TEST_CLOCK (clock);
+ *   GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ *   gst_test_clock_advance_time ( test_clock, 1 * GST_SECOND);
+ *   GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ *   g_usleep (10 * G_USEC_PER_SEC);
+ *   GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ *   gst_test_clock_set_time (test_clock, 42 * GST_SECOND);
+ *   GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ *   ...
+ *   </programlisting>
+ * </example>
+ *
+ * #GstClock allows for setting up single shot or periodic clock notifications
+ * as well as waiting for these notifications synchronously (using
+ * gst_clock_id_wait()) or asynchronously (using gst_clock_id_wait_async() or
+ * gst_clock_id_wait_async_full()). This is used by many GStreamer elements,
+ * among them #GstBaseSrc and #GstBaseSink.
+ *
+ * #GstTestClock keeps track of these clock notifications. By calling
+ * gst_test_clock_wait_for_next_pending_id() or
+ * gst_test_clock_wait_for_pending_id_count() a unit tests may wait for the
+ * next one or several clock notifications to be requested. Additionally unit
+ * tests may release blocked waits in a controlled fashion by calling
+ * gst_test_clock_process_next_clock_id(). This way a unit test can control the
+ * inaccuracy (jitter) of clock notifications, since the test can decide to
+ * release blocked waits when the clock time has advanced exactly to, or past,
+ * the requested clock notification time.
+ *
+ * There are also interfaces for determining if a notification belongs to a
+ * #GstTestClock or not, as well as getting the number of requested clock
+ * notifications so far.
+ *
+ * N.B.: When a unit test waits for a certain amount of clock notifications to
+ * be requested in gst_test_clock_wait_for_next_pending_id() or
+ * gst_test_clock_wait_for_pending_id_count() then these functions may block
+ * for a long time. If they block forever then the expected clock notifications
+ * were never requested from #GstTestClock, and so the assumptions in the code
+ * of the unit test are wrong. The unit test case runner in #GstCheck is
+ * expected to catch these cases either by the default test case timeout or the
+ * one set for the unit test by calling tcase_set_timeout().
+ *
+ * The sample code below assumes that the element under test will delay a
+ * buffer pushed on the source pad by some latency until it arrives on the sink
+ * pad. Moreover it is assumed that the element will at some point call
+ * gst_clock_id_wait() to synchronously wait for a specific time. The first
+ * buffer sent will arrive exactly on time only delayed by the latency. The
+ * second buffer will arrive a little late (7ms) due to simulated jitter in the
+ * clock notification.
+ *
+ * <example>
+ * <title>Demonstration of how to work with clock notifications and #GstTestClock</title>
+ *   <programlisting language="c">
+ *   #include &lt;gst/gst.h&gt;
+ *   #include &lt;gst/check/gstcheck.h&gt;
+ *   #include &lt;gst/check/gsttestclock.h&gt;
+ *
+ *   GstClockTime latency;
+ *   GstElement *element;
+ *   GstPad *srcpad;
+ *   GstClock *clock;
+ *   GstTestClock *test_clock;
+ *   GstBuffer buf;
+ *   GstClockID pending_id;
+ *   GstClockID processed_id;
+ *
+ *   latency = 42 * GST_MSECOND;
+ *   element = create_element (latency, ...);
+ *   srcpad = get_source_pad (element);
+ *
+ *   clock = gst_test_clock_new ();
+ *   test_clock = GST_TEST_CLOCK (clock);
+ *   gst_element_set_clock (element, clock);
+ *
+ *   GST_INFO ("Set time, create and push the first buffer\n");
+ *   gst_test_clock_set_time (test_clock, 0);
+ *   buf = create_test_buffer (gst_clock_get_time (clock), ...);
+ *   gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
+ *
+ *   GST_INFO ("Block until element is waiting for a clock notification\n");
+ *   gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+ *   GST_INFO ("Advance to the requested time of the clock notification\n");
+ *   gst_test_clock_advance_time (test_clock, latency);
+ *   GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
+ *   processed_id = gst_test_clock_process_next_clock_id (test_clock);
+ *   g_assert (processed_id == pending_id);
+ *   g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
+ *   gst_clock_id_unref (pending_id);
+ *   gst_clock_id_unref (processed_id);
+ *
+ *   GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
+ *   g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
+ *   buf = get_buffer_pushed_by_element (element, ...);
+ *   g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==, latency);
+ *   gst_buffer_unref (buf);
+ *   GST_INFO ("Check that element does not wait for any clock notification\n");
+ *   g_assert (gst_test_clock_peek_next_pending_id (test_clock, NULL) == FALSE);
+ *
+ *   GST_INFO ("Set time, create and push the second buffer\n");
+ *   gst_test_clock_advance_time (test_clock, 10 * GST_SECOND);
+ *   buf = create_test_buffer (gst_clock_get_time (clock), ...);
+ *   gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
+ *
+ *   GST_INFO ("Block until element is waiting for a new clock notification\n");
+ *   (gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+ *   GST_INFO ("Advance past 7ms beyond the requested time of the clock notification\n");
+ *   gst_test_clock_advance_time (test_clock, latency + 7 * GST_MSECOND);
+ *   GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
+ *   processed_id = gst_test_clock_process_next_clock_id (test_clock);
+ *   g_assert (processed_id == pending_id);
+ *   g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
+ *   gst_clock_id_unref (pending_id);
+ *   gst_clock_id_unref (processed_id);
+ *
+ *   GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
+ *   g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
+ *   buf = get_buffer_pushed_by_element (element, ...);
+ *   g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==,
+ *       10 * GST_SECOND + latency + 7 * GST_MSECOND);
+ *   gst_buffer_unref (buf);
+ *   GST_INFO ("Check that element does not wait for any clock notification\n");
+ *   g_assert (gst_test_clock_peek_next_pending_id (test_clock, NULL) == FALSE);
+ *   ...
+ *   </programlisting>
+ * </example>
+ *
+ * Since #GstTestClock is only supposed to be used in unit tests it calls
+ * g_assert(), g_assert_cmpint() or g_assert_cmpuint() to validate all function
+ * arguments. This will highlight any issues with the unit test code itself.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "gsttestclock.h"
+
+enum
+{
+  PROP_0,
+  PROP_START_TIME
+};
+
+typedef struct _GstClockEntryContext GstClockEntryContext;
+
+struct _GstClockEntryContext
+{
+  GstClockEntry *clock_entry;
+  GstClockTimeDiff time_diff;
+};
+
+struct _GstTestClockPrivate
+{
+  GstClockTime start_time;
+  GstClockTime internal_time;
+  GList *entry_contexts;
+  GCond entry_added_cond;
+  GCond entry_processed_cond;
+};
+
+#define GST_TEST_CLOCK_GET_PRIVATE(obj) ((GST_TEST_CLOCK_CAST (obj))->priv)
+
+GST_DEBUG_CATEGORY_STATIC (test_clock_debug);
+#define GST_CAT_TEST_CLOCK test_clock_debug
+
+#define _do_init \
+G_STMT_START { \
+  GST_DEBUG_CATEGORY_INIT (test_clock_debug, "GST_TEST_CLOCK", \
+      GST_DEBUG_BOLD, "Test clocks for unit tests"); \
+} G_STMT_END
+
+G_DEFINE_TYPE_WITH_CODE (GstTestClock, gst_test_clock,
+    GST_TYPE_CLOCK, _do_init);
+
+static GstObjectClass *parent_class = NULL;
+
+static void gst_test_clock_constructed (GObject * object);
+static void gst_test_clock_dispose (GObject * object);
+static void gst_test_clock_finalize (GObject * object);
+static void gst_test_clock_get_property (GObject * object, guint property_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_test_clock_set_property (GObject * object, guint property_id,
+    const GValue * value, GParamSpec * pspec);
+
+static GstClockTime gst_test_clock_get_resolution (GstClock * clock);
+static GstClockTime gst_test_clock_get_internal_time (GstClock * clock);
+static GstClockReturn gst_test_clock_wait (GstClock * clock,
+    GstClockEntry * entry, GstClockTimeDiff * jitter);
+static GstClockReturn gst_test_clock_wait_async (GstClock * clock,
+    GstClockEntry * entry);
+static void gst_test_clock_unschedule (GstClock * clock, GstClockEntry * entry);
+
+static gboolean gst_test_clock_peek_next_pending_id_unlocked (GstTestClock *
+    test_clock, GstClockID * pending_id);
+static guint gst_test_clock_peek_id_count_unlocked (GstTestClock * test_clock);
+
+static void gst_test_clock_add_entry (GstTestClock * test_clock,
+    GstClockEntry * entry, GstClockTimeDiff * jitter);
+static void gst_test_clock_remove_entry (GstTestClock * test_clock,
+    GstClockEntry * entry);
+static GstClockEntryContext *gst_test_clock_lookup_entry_context (GstTestClock *
+    test_clock, GstClockEntry * clock_entry);
+
+static gint gst_clock_entry_context_compare_func (gconstpointer a,
+    gconstpointer b);
+
+static void
+gst_test_clock_class_init (GstTestClockClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GstClockClass *gstclock_class = GST_CLOCK_CLASS (klass);
+  GParamSpec *pspec;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  g_type_class_add_private (klass, sizeof (GstTestClockPrivate));
+
+  gobject_class->constructed = GST_DEBUG_FUNCPTR (gst_test_clock_constructed);
+  gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_test_clock_dispose);
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_test_clock_finalize);
+  gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_test_clock_get_property);
+  gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_test_clock_set_property);
+
+  gstclock_class->get_resolution =
+      GST_DEBUG_FUNCPTR (gst_test_clock_get_resolution);
+  gstclock_class->get_internal_time =
+      GST_DEBUG_FUNCPTR (gst_test_clock_get_internal_time);
+  gstclock_class->wait = GST_DEBUG_FUNCPTR (gst_test_clock_wait);
+  gstclock_class->wait_async = GST_DEBUG_FUNCPTR (gst_test_clock_wait_async);
+  gstclock_class->unschedule = GST_DEBUG_FUNCPTR (gst_test_clock_unschedule);
+
+  /**
+   * GstTestClock:start-time
+   *
+   * When a #GstTestClock is constructed it will have a certain start time set.
+   * If the clock was created using gst_test_clock_new_with_start_time() then
+   * this property contains the value of the @start_time argument. If
+   * gst_test_clock_new() was called the clock started at time zero, and thus
+   * this property contains the value 0.
+   */
+  pspec = g_param_spec_uint64 ("start-time", "Start Time",
+      "Start Time of the Clock", 0, G_MAXUINT64, 0,
+      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
+  g_object_class_install_property (gobject_class, PROP_START_TIME, pspec);
+}
+
+static void
+gst_test_clock_init (GstTestClock * test_clock)
+{
+  GstTestClockPrivate *priv;
+
+  test_clock->priv = G_TYPE_INSTANCE_GET_PRIVATE (test_clock,
+      GST_TYPE_TEST_CLOCK, GstTestClockPrivate);
+
+  priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  g_cond_init (&priv->entry_added_cond);
+  g_cond_init (&priv->entry_processed_cond);
+
+  GST_OBJECT_FLAG_SET (test_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);
+}
+
+static void
+gst_test_clock_constructed (GObject * object)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (object);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  priv->internal_time = priv->start_time;
+
+  G_OBJECT_CLASS (parent_class)->constructed (object);
+}
+
+static void
+gst_test_clock_dispose (GObject * object)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (object);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  GST_OBJECT_LOCK (test_clock);
+
+  while (priv->entry_contexts != NULL) {
+    GstClockEntryContext *ctx = priv->entry_contexts->data;
+    gst_test_clock_remove_entry (test_clock, ctx->clock_entry);
+  }
+
+  GST_OBJECT_UNLOCK (test_clock);
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_test_clock_finalize (GObject * object)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (object);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  g_cond_clear (&priv->entry_added_cond);
+  g_cond_clear (&priv->entry_processed_cond);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_test_clock_get_property (GObject * object, guint property_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (object);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  switch (property_id) {
+    case PROP_START_TIME:
+      g_value_set_uint64 (value, priv->start_time);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_test_clock_set_property (GObject * object, guint property_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (object);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  switch (property_id) {
+    case PROP_START_TIME:
+      priv->start_time = g_value_get_uint64 (value);
+      GST_CAT_TRACE_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+          "test clock start time initialized at %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (priv->start_time));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static GstClockTime
+gst_test_clock_get_resolution (GstClock * clock)
+{
+  return 1;
+}
+
+static GstClockTime
+gst_test_clock_get_internal_time (GstClock * clock)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (clock);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GstClockTime result;
+
+  GST_OBJECT_LOCK (test_clock);
+
+  GST_CAT_TRACE_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+      "retrieving test clock time %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (priv->internal_time));
+  result = priv->internal_time;
+
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return result;
+}
+
+static GstClockReturn
+gst_test_clock_wait (GstClock * clock,
+    GstClockEntry * entry, GstClockTimeDiff * jitter)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (clock);
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  GST_OBJECT_LOCK (test_clock);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+      "requesting synchronous clock notification at %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (GST_CLOCK_ENTRY_TIME (entry)));
+
+  if (gst_test_clock_lookup_entry_context (test_clock, entry) == NULL)
+    gst_test_clock_add_entry (test_clock, entry, jitter);
+
+  GST_CLOCK_ENTRY_STATUS (entry) = GST_CLOCK_BUSY;
+
+  while (GST_CLOCK_ENTRY_STATUS (entry) == GST_CLOCK_BUSY)
+    g_cond_wait (&priv->entry_processed_cond, GST_OBJECT_GET_LOCK (test_clock));
+
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return GST_CLOCK_ENTRY_STATUS (entry);
+}
+
+static GstClockReturn
+gst_test_clock_wait_async (GstClock * clock, GstClockEntry * entry)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (clock);
+
+  GST_OBJECT_LOCK (test_clock);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+      "requesting asynchronous clock notification at %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (GST_CLOCK_ENTRY_TIME (entry)));
+
+  gst_test_clock_add_entry (test_clock, entry, NULL);
+
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return GST_CLOCK_OK;
+}
+
+static void
+gst_test_clock_unschedule (GstClock * clock, GstClockEntry * entry)
+{
+  GstTestClock *test_clock = GST_TEST_CLOCK (clock);
+
+  GST_OBJECT_LOCK (test_clock);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+      "unscheduling requested clock notification at %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (GST_CLOCK_ENTRY_TIME (entry)));
+
+  GST_CLOCK_ENTRY_STATUS (entry) = GST_CLOCK_UNSCHEDULED;
+  gst_test_clock_remove_entry (test_clock, entry);
+
+  GST_OBJECT_UNLOCK (test_clock);
+}
+
+static gboolean
+gst_test_clock_peek_next_pending_id_unlocked (GstTestClock * test_clock,
+    GstClockID * pending_id)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GList *imminent_clock_id = g_list_first (priv->entry_contexts);
+  gboolean result = FALSE;
+
+  if (imminent_clock_id != NULL) {
+    GstClockEntryContext *ctx = imminent_clock_id->data;
+
+    if (pending_id != NULL) {
+      *pending_id = gst_clock_id_ref (ctx->clock_entry);
+    }
+
+    result = TRUE;
+  }
+
+  return result;
+}
+
+static guint
+gst_test_clock_peek_id_count_unlocked (GstTestClock * test_clock)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  return g_list_length (priv->entry_contexts);
+}
+
+static void
+gst_test_clock_add_entry (GstTestClock * test_clock,
+    GstClockEntry * entry, GstClockTimeDiff * jitter)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GstClockTime now;
+  GstClockEntryContext *ctx;
+
+  now = gst_clock_adjust_unlocked (GST_CLOCK (test_clock), priv->internal_time);
+
+  if (jitter != NULL)
+    *jitter = GST_CLOCK_DIFF (GST_CLOCK_ENTRY_TIME (entry), now);
+
+  ctx = g_slice_new (GstClockEntryContext);
+  ctx->clock_entry = GST_CLOCK_ENTRY (gst_clock_id_ref (entry));
+  ctx->time_diff = GST_CLOCK_DIFF (now, GST_CLOCK_ENTRY_TIME (entry));
+
+  priv->entry_contexts = g_list_insert_sorted (priv->entry_contexts, ctx,
+      gst_clock_entry_context_compare_func);
+
+  g_cond_broadcast (&priv->entry_added_cond);
+}
+
+static void
+gst_test_clock_remove_entry (GstTestClock * test_clock, GstClockEntry * entry)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GstClockEntryContext *ctx;
+
+  ctx = gst_test_clock_lookup_entry_context (test_clock, entry);
+  if (ctx != NULL) {
+    gst_clock_id_unref (ctx->clock_entry);
+    priv->entry_contexts = g_list_remove (priv->entry_contexts, ctx);
+    g_slice_free (GstClockEntryContext, ctx);
+
+    g_cond_broadcast (&priv->entry_processed_cond);
+  }
+}
+
+static GstClockEntryContext *
+gst_test_clock_lookup_entry_context (GstTestClock * test_clock,
+    GstClockEntry * clock_entry)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GstClockEntryContext *result = NULL;
+  GList *cur;
+
+  for (cur = priv->entry_contexts; cur != NULL; cur = cur->next) {
+    GstClockEntryContext *ctx = cur->data;
+
+    if (ctx->clock_entry == clock_entry) {
+      result = ctx;
+      break;
+    }
+  }
+
+  return result;
+}
+
+static gint
+gst_clock_entry_context_compare_func (gconstpointer a, gconstpointer b)
+{
+  const GstClockEntryContext *ctx_a = a;
+  const GstClockEntryContext *ctx_b = b;
+
+  return gst_clock_id_compare_func (ctx_a->clock_entry, ctx_b->clock_entry);
+}
+
+/**
+ * gst_test_clock_new:
+ *
+ * Creates a new test clock with its time set to zero.
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): a #GstTestClock cast to #GstClock.
+ *
+ * Since: 1.2
+ */
+GstClock *
+gst_test_clock_new (void)
+{
+  return gst_test_clock_new_with_start_time (0);
+}
+
+/**
+ * gst_test_clock_new_with_start_time:
+ * @start_time: a #GstClockTime set to the desired start time of the clock.
+ *
+ * Creates a new test clock with its time set to the specified time.
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): a #GstTestClock cast to #GstClock.
+ *
+ * Since: 1.2
+ */
+GstClock *
+gst_test_clock_new_with_start_time (GstClockTime start_time)
+{
+  g_assert_cmpuint (start_time, !=, GST_CLOCK_TIME_NONE);
+  return g_object_new (GST_TYPE_TEST_CLOCK, "start-time", start_time, NULL);
+}
+
+/**
+ * gst_test_clock_set_time:
+ * @test_clock: a #GstTestClock of which to set the time
+ * @new_time: a #GstClockTime later than that returned by gst_clock_get_time()
+ *
+ * Sets the time of @test_clock to the time given by @new_time. The time of
+ * @test_clock is monotonically increasing, therefore providing a @new_time
+ * which is earlier or equal to the time of the clock as given by
+ * gst_clock_get_time() is a programming error.
+ *
+ * MT safe.
+ *
+ * Since: 1.2
+ */
+void
+gst_test_clock_set_time (GstTestClock * test_clock, GstClockTime new_time)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+  g_assert_cmpuint (new_time, !=, GST_CLOCK_TIME_NONE);
+
+  GST_OBJECT_LOCK (test_clock);
+
+  g_assert_cmpuint (new_time, >=, priv->internal_time);
+
+  priv->internal_time = new_time;
+  GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+      "clock set to %" GST_TIME_FORMAT, GST_TIME_ARGS (new_time));
+
+  GST_OBJECT_UNLOCK (test_clock);
+}
+
+/**
+ * gst_test_clock_advance_time:
+ * @test_clock: a #GstTestClock for which to increase the time
+ * @delta: a positive #GstClockTimeDiff to be added to the time of the clock
+ *
+ * Advances the time of the @test_clock by the amount given by @delta. The
+ * time of @test_clock is monotonically increasing, therefore providing a
+ * @delta which is negative or zero is a programming error.
+ *
+ * MT safe.
+ *
+ * Since: 1.2
+ */
+void
+gst_test_clock_advance_time (GstTestClock * test_clock, GstClockTimeDiff delta)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+  g_assert_cmpint (delta, >=, 0);
+  g_assert_cmpuint (delta, <, G_MAXUINT64 - delta);
+
+  GST_OBJECT_LOCK (test_clock);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_TEST_CLOCK, test_clock,
+      "advancing clock by %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (delta), GST_TIME_ARGS (priv->internal_time + delta));
+  priv->internal_time += delta;
+
+  GST_OBJECT_UNLOCK (test_clock);
+}
+
+/**
+ * gst_test_clock_peek_id_count:
+ * @test_clock: a #GstTestClock for which to count notifications
+ *
+ * Determine the number of pending clock notifications that have been
+ * requested from the @test_clock.
+ *
+ * MT safe.
+ *
+ * Returns: the number of pending clock notifications.
+ *
+ * Since: 1.2
+ */
+guint
+gst_test_clock_peek_id_count (GstTestClock * test_clock)
+{
+  guint result;
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+
+  GST_OBJECT_LOCK (test_clock);
+  result = gst_test_clock_peek_id_count_unlocked (test_clock);
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return result;
+}
+
+/**
+ * gst_test_clock_has_id:
+ * @test_clock: a #GstTestClock to ask if it provided the notification
+ * @id: (transfer none): a #GstClockID clock notification
+ *
+ * Checks whether @test_clock was requested to provide the clock notification
+ * given by @id.
+ *
+ * MT safe.
+ *
+ * Returns: %TRUE if the clock has been asked to provide the given clock
+ * notification, %FALSE otherwise.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_test_clock_has_id (GstTestClock * test_clock, GstClockID id)
+{
+  gboolean result;
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+  g_assert (id != NULL);
+
+  GST_OBJECT_LOCK (test_clock);
+  result = gst_test_clock_lookup_entry_context (test_clock, id) != NULL;
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return result;
+}
+
+/**
+ * gst_test_clock_peek_next_pending_id:
+ * @test_clock: a #GstTestClock to check the clock notifications for
+ * @pending_id: (allow-none) (out) (transfer full): a #GstClockID clock
+ * notification to look for
+ *
+ * Determines if the @pending_id is the next clock notification scheduled to
+ * be triggered given the current time of the @test_clock.
+ *
+ * MT safe.
+ *
+ * Return: %TRUE if @pending_id is the next clock notification to be
+ * triggered, %FALSE otherwise.
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_test_clock_peek_next_pending_id (GstTestClock * test_clock,
+    GstClockID * pending_id)
+{
+  gboolean result;
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+
+  GST_OBJECT_LOCK (test_clock);
+  result = gst_test_clock_peek_next_pending_id_unlocked (test_clock,
+      pending_id);
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return result;
+}
+
+/**
+ * gst_test_clock_wait_for_next_pending_id:
+ * @test_clock: #GstTestClock for which to get the pending clock notification
+ * @pending_id: (allow-none) (out) (transfer full): #GstClockID
+ * with information about the pending clock notification
+ *
+ * Waits until a clock notification is requested from @test_clock. There is no
+ * timeout for this wait, see the main description of #GstTestClock. A reference
+ * to the pending clock notification is stored in @pending_id.
+ *
+ * MT safe.
+ *
+ * Since: 1.2
+ */
+void
+gst_test_clock_wait_for_next_pending_id (GstTestClock * test_clock,
+    GstClockID * pending_id)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+
+  GST_OBJECT_LOCK (test_clock);
+
+  while (priv->entry_contexts == NULL)
+    g_cond_wait (&priv->entry_added_cond, GST_OBJECT_GET_LOCK (test_clock));
+
+  g_assert (gst_test_clock_peek_next_pending_id_unlocked (test_clock,
+          pending_id));
+
+  GST_OBJECT_UNLOCK (test_clock);
+}
+
+/**
+ * gst_test_clock_wait_for_pending_id_count:
+ * @test_clock: #GstTestClock for which to await having enough pending clock
+ * @count: the number of pending clock notifications to wait for
+ *
+ * Blocks until at least @count clock notifications have been requested from
+ * @test_clock. There is no timeout for this wait, see the main description of
+ * #GstTestClock.
+ *
+ * MT safe.
+ *
+ * Since: 1.2
+ */
+void
+gst_test_clock_wait_for_pending_id_count (GstTestClock * test_clock,
+    guint count)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+
+  GST_OBJECT_LOCK (test_clock);
+
+  while (gst_test_clock_peek_id_count_unlocked (test_clock) < count)
+    g_cond_wait (&priv->entry_added_cond, GST_OBJECT_GET_LOCK (test_clock));
+
+  GST_OBJECT_UNLOCK (test_clock);
+}
+
+/**
+ * gst_test_clock_process_next_clock_id:
+ * @test_clock: a #GstTestClock for which to retrive the next pending clock
+ * notification
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): a #GstClockID containing the next pending clock
+ * notification.
+ *
+ * Since: 1.2
+ */
+GstClockID
+gst_test_clock_process_next_clock_id (GstTestClock * test_clock)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GstClockID result = NULL;
+  GstClockEntryContext *ctx = NULL;
+  GList *cur;
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+
+  GST_OBJECT_LOCK (test_clock);
+
+  for (cur = priv->entry_contexts; cur != NULL && result == NULL;
+      cur = cur->next) {
+    ctx = cur->data;
+
+    if (priv->internal_time >= GST_CLOCK_ENTRY_TIME (ctx->clock_entry))
+      result = gst_clock_id_ref (ctx->clock_entry);
+  }
+
+  if (result != NULL) {
+    GstClockEntry *entry = ctx->clock_entry;
+
+    if (ctx->time_diff >= 0)
+      GST_CLOCK_ENTRY_STATUS (entry) = GST_CLOCK_OK;
+    else
+      GST_CLOCK_ENTRY_STATUS (entry) = GST_CLOCK_EARLY;
+
+    if (entry->func != NULL) {
+      GST_OBJECT_UNLOCK (test_clock);
+      entry->func (GST_CLOCK (test_clock), priv->internal_time, entry,
+          entry->user_data);
+      GST_OBJECT_LOCK (test_clock);
+    }
+
+    gst_test_clock_remove_entry (test_clock, entry);
+
+    if (GST_CLOCK_ENTRY_TYPE (entry) == GST_CLOCK_ENTRY_PERIODIC) {
+      GST_CLOCK_ENTRY_TIME (entry) += GST_CLOCK_ENTRY_INTERVAL (entry);
+
+      if (entry->func != NULL)
+        gst_test_clock_add_entry (test_clock, entry, NULL);
+    }
+  }
+
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return result;
+}
+
+/**
+ * gst_test_clock_get_next_entry_time:
+ * @test_clock: a #GstTestClock to fetch the next clock notification time for
+ *
+ * Retrieve the requested time for the next pending clock notification.
+ *
+ * MT safe.
+ *
+ * Returns: a #GstClockTime set to the time of the next pending clock
+ * notification. If no clock notifications have been requested
+ * %GST_CLOCK_TIME_NONE will be returned.
+ *
+ * Since: 1.2
+ */
+GstClockTime
+gst_test_clock_get_next_entry_time (GstTestClock * test_clock)
+{
+  GstTestClockPrivate *priv = GST_TEST_CLOCK_GET_PRIVATE (test_clock);
+  GstClockTime result = GST_CLOCK_TIME_NONE;
+  GList *imminent_clock_id;
+
+  g_assert (GST_IS_TEST_CLOCK (test_clock));
+
+  GST_OBJECT_LOCK (test_clock);
+
+  /* The list of pending clock notifications is sorted by time,
+     so the most imminent one is the first one in the list. */
+  imminent_clock_id = g_list_first (priv->entry_contexts);
+  if (imminent_clock_id != NULL) {
+    GstClockEntryContext *ctx = imminent_clock_id->data;
+    result = GST_CLOCK_ENTRY_TIME (ctx->clock_entry);
+  }
+
+  GST_OBJECT_UNLOCK (test_clock);
+
+  return result;
+}
diff --git a/libs/gst/check/gsttestclock.h b/libs/gst/check/gsttestclock.h
new file mode 100644
index 0000000..699e169
--- /dev/null
+++ b/libs/gst/check/gsttestclock.h
@@ -0,0 +1,106 @@
+/* GstTestClock - A deterministic clock for GStreamer unit tests
+ *
+ * Copyright (C) 2008 Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
+ * Copyright (C) 2012 Sebastian Rasmussen <sebastian.rasmussen@axis.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_TEST_CLOCK_H__
+#define __GST_TEST_CLOCK_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_TEST_CLOCK (gst_test_clock_get_type ())
+#define GST_TEST_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),\
+    GST_TYPE_TEST_CLOCK, GstTestClock))
+#define GST_IS_TEST_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),\
+    GST_TYPE_TEST_CLOCK))
+#define GST_TEST_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),\
+    GST_TYPE_TEST_CLOCK, GstTestClockClass))
+#define GST_IS_TEST_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (\
+    (klass), GST_TYPE_TEST_CLOCK))
+#define GST_TEST_CLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (\
+    (obj), GST_TYPE_TEST_CLOCK, GstTestClockClass))
+#define GST_TEST_CLOCK_CAST(obj) ((GstTestClock*)(obj))
+
+typedef struct _GstTestClock GstTestClock;
+typedef struct _GstTestClockClass GstTestClockClass;
+typedef struct _GstTestClockPrivate GstTestClockPrivate;
+
+/**
+ * GstTestClock:
+ *
+ * A #GstTestClock structure which is based on a #GstClock along with some
+ * private data.
+ *
+ * Since: 1.2
+ */
+struct _GstTestClock
+{
+  GstClock parent;
+
+  /*< private >*/
+  GstTestClockPrivate *priv;
+};
+
+/**
+ * GstTestClockClass:
+ * @parent_class: the parent class structure
+ *
+ * The class of a #GstTestClock, which has no virtual methods to override.
+ *
+ * Since: 1.2
+ */
+struct _GstTestClockClass
+{
+  GstClockClass parent_class;
+};
+
+GType         gst_test_clock_get_type (void);
+
+GstClock *    gst_test_clock_new (void);
+
+GstClock *    gst_test_clock_new_with_start_time (GstClockTime start_time);
+
+void          gst_test_clock_set_time     (GstTestClock * test_clock,
+                                           GstClockTime new_time);
+
+void          gst_test_clock_advance_time (GstTestClock * test_clock,
+                                           GstClockTimeDiff delta);
+
+guint         gst_test_clock_peek_id_count (GstTestClock * test_clock);
+
+gboolean      gst_test_clock_has_id (GstTestClock * test_clock, GstClockID id);
+
+gboolean      gst_test_clock_peek_next_pending_id (GstTestClock * test_clock,
+                                                   GstClockID   * pending_id);
+
+void          gst_test_clock_wait_for_next_pending_id  (GstTestClock * test_clock,
+                                                        GstClockID   * pending_id);
+
+void          gst_test_clock_wait_for_pending_id_count (GstTestClock * test_clock,
+                                                        guint          count);
+
+GstClockID    gst_test_clock_process_next_clock_id (GstTestClock * test_clock);
+
+GstClockTime  gst_test_clock_get_next_entry_time   (GstTestClock * test_clock);
+
+G_END_DECLS
+
+#endif /* __GST_TEST_CLOCK_H__ */
diff --git a/libs/gst/check/libcheck/Makefile.in b/libs/gst/check/libcheck/Makefile.in
index f8b88db..cb3bccc 100644
--- a/libs/gst/check/libcheck/Makefile.in
+++ b/libs/gst/check/libcheck/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = libs/gst/check/libcheck
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/check.h.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/check.h.in $(top_srcdir)/depcomp $(noinst_HEADERS)
 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 \
@@ -86,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -117,10 +145,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libcheckinternal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libcheckinternal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -133,20 +174,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libcheckinternal_la_SOURCES)
 DIST_SOURCES = $(libcheckinternal_la_SOURCES)
 am__can_run_installinfo = \
@@ -155,6 +192,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -256,15 +310,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -274,11 +324,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -286,6 +334,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -348,6 +397,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -509,12 +559,15 @@
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_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
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -624,26 +677,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -655,15 +697,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -672,6 +710,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -813,18 +866,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/libs/gst/check/libcheck/check.c b/libs/gst/check/libcheck/check.c
index 88e9e10..9aba434 100644
--- a/libs/gst/check/libcheck/check.c
+++ b/libs/gst/check/libcheck/check.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check.h b/libs/gst/check/libcheck/check.h
index 5b29aca..25dac71 100644
--- a/libs/gst/check/libcheck/check.h
+++ b/libs/gst/check/libcheck/check.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_H
diff --git a/libs/gst/check/libcheck/check.h.in b/libs/gst/check/libcheck/check.h.in
index b0edb41..3741ad0 100644
--- a/libs/gst/check/libcheck/check.h.in
+++ b/libs/gst/check/libcheck/check.h.in
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_H
diff --git a/libs/gst/check/libcheck/check_error.c b/libs/gst/check/libcheck/check_error.c
index 71add6d..247b9ca 100644
--- a/libs/gst/check/libcheck/check_error.c
+++ b/libs/gst/check/libcheck/check_error.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_error.h b/libs/gst/check/libcheck/check_error.h
index 2e1e211..3fa0129 100644
--- a/libs/gst/check/libcheck/check_error.h
+++ b/libs/gst/check/libcheck/check_error.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef ERROR_H
diff --git a/libs/gst/check/libcheck/check_impl.h b/libs/gst/check/libcheck/check_impl.h
index 907950c..c76488e 100644
--- a/libs/gst/check/libcheck/check_impl.h
+++ b/libs/gst/check/libcheck/check_impl.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_IMPL_H
diff --git a/libs/gst/check/libcheck/check_list.c b/libs/gst/check/libcheck/check_list.c
index d73a222..c40ab58 100644
--- a/libs/gst/check/libcheck/check_list.c
+++ b/libs/gst/check/libcheck/check_list.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_list.h b/libs/gst/check/libcheck/check_list.h
index e40f4f8..7936c19 100644
--- a/libs/gst/check/libcheck/check_list.h
+++ b/libs/gst/check/libcheck/check_list.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_LIST_H
diff --git a/libs/gst/check/libcheck/check_log.c b/libs/gst/check/libcheck/check_log.c
index 8a0e3eb..5f0dd97 100644
--- a/libs/gst/check/libcheck/check_log.c
+++ b/libs/gst/check/libcheck/check_log.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_log.h b/libs/gst/check/libcheck/check_log.h
index 3ed38ee..84c9b7c 100644
--- a/libs/gst/check/libcheck/check_log.h
+++ b/libs/gst/check/libcheck/check_log.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_LOG_H
diff --git a/libs/gst/check/libcheck/check_msg.c b/libs/gst/check/libcheck/check_msg.c
index 6fbff43..ae653ff 100644
--- a/libs/gst/check/libcheck/check_msg.c
+++ b/libs/gst/check/libcheck/check_msg.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_msg.h b/libs/gst/check/libcheck/check_msg.h
index c4d7f25..6ddaa3d 100644
--- a/libs/gst/check/libcheck/check_msg.h
+++ b/libs/gst/check/libcheck/check_msg.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_MSG_NEW_H
diff --git a/libs/gst/check/libcheck/check_pack.c b/libs/gst/check/libcheck/check_pack.c
index c25dece..c34644a 100644
--- a/libs/gst/check/libcheck/check_pack.c
+++ b/libs/gst/check/libcheck/check_pack.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_pack.h b/libs/gst/check/libcheck/check_pack.h
index 0b78695..3b916c9 100644
--- a/libs/gst/check/libcheck/check_pack.h
+++ b/libs/gst/check/libcheck/check_pack.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_PACK_H
diff --git a/libs/gst/check/libcheck/check_print.c b/libs/gst/check/libcheck/check_print.c
index d4f7d7a..f170d60 100644
--- a/libs/gst/check/libcheck/check_print.c
+++ b/libs/gst/check/libcheck/check_print.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_print.h b/libs/gst/check/libcheck/check_print.h
index f4b02da..18c0f62 100644
--- a/libs/gst/check/libcheck/check_print.h
+++ b/libs/gst/check/libcheck/check_print.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_PRINT_H
diff --git a/libs/gst/check/libcheck/check_run.c b/libs/gst/check/libcheck/check_run.c
index 18a36a0..0c7b815 100644
--- a/libs/gst/check/libcheck/check_run.c
+++ b/libs/gst/check/libcheck/check_run.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_str.c b/libs/gst/check/libcheck/check_str.c
index a194111..e66073e 100644
--- a/libs/gst/check/libcheck/check_str.c
+++ b/libs/gst/check/libcheck/check_str.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/libs/gst/check/libcheck/check_str.h b/libs/gst/check/libcheck/check_str.h
index bd41055..9282a9a 100644
--- a/libs/gst/check/libcheck/check_str.h
+++ b/libs/gst/check/libcheck/check_str.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef CHECK_STR_H
diff --git a/libs/gst/controller/Makefile.am b/libs/gst/controller/Makefile.am
index 0cd1e62..3ae4098 100644
--- a/libs/gst/controller/Makefile.am
+++ b/libs/gst/controller/Makefile.am
@@ -2,6 +2,7 @@
 
 libgstcontroller_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/controller
 libgstcontroller_@GST_API_VERSION@_include_HEADERS = \
+	controller.h \
 	gstargbcontrolbinding.h \
 	gstdirectcontrolbinding.h \
 	gsttimedvaluecontrolsource.h \
@@ -45,11 +46,10 @@
 
 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_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 \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstController \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
@@ -58,10 +58,9 @@
 		-I$(top_srcdir)/libs \
 		-I$(top_builddir) \
 		-I$(top_builddir)/libs \
-		$(gir_cincludes) \
+		--c-include "gst/controller/controller.h" \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
 		--library=libgstcontroller-@GST_API_VERSION@.la \
 		--include=Gst-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
diff --git a/libs/gst/controller/Makefile.in b/libs/gst/controller/Makefile.in
index 7fe1476..72dae4a 100644
--- a/libs/gst/controller/Makefile.in
+++ b/libs/gst/controller/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,15 @@
 target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/controller
-DIST_COMMON = $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstcontroller_@GST_API_VERSION@_include_HEADERS)
 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 \
@@ -88,12 +115,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -145,11 +174,24 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstcontroller_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
 	--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
 	$(CFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
 	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -162,20 +204,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstcontroller_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstcontroller_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -185,8 +223,7 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstcontroller_@GST_API_VERSION@_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -286,15 +323,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -304,11 +337,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -316,6 +347,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -378,6 +410,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -471,6 +504,7 @@
 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 = \
+	controller.h \
 	gstargbcontrolbinding.h \
 	gstdirectcontrolbinding.h \
 	gsttimedvaluecontrolsource.h \
@@ -493,7 +527,6 @@
 @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.
@@ -535,6 +568,7 @@
 $(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)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -561,12 +595,15 @@
 
 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
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -714,58 +751,12 @@
 	@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|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-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
+ctags CTAGS:
 
-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
+cscope cscopelist:
 
-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'`; \
@@ -843,8 +834,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -912,10 +902,10 @@
 
 .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 \
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool 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-girDATA \
 	install-html install-html-am install-info install-info-am \
@@ -926,7 +916,7 @@
 	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-girDATA \
+	tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstcontroller_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
@@ -951,7 +941,7 @@
 
 @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@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstController \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
@@ -960,10 +950,9 @@
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir) \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/libs \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/controller/controller.h" \
 @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_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" \
diff --git a/libs/gst/controller/controller.h b/libs/gst/controller/controller.h
new file mode 100644
index 0000000..c9eb4f8
--- /dev/null
+++ b/libs/gst/controller/controller.h
@@ -0,0 +1,32 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstcontroller.h: single include header for gst-controller library
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_CONTROLLER_H__
+#define __GST_CONTROLLER_H__
+
+#include <gst/controller/gstargbcontrolbinding.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
+#include <gst/controller/gsttimedvaluecontrolsource.h>
+#include <gst/controller/gstinterpolationcontrolsource.h>
+#include <gst/controller/gsttriggercontrolsource.h>
+#include <gst/controller/gstlfocontrolsource.h>
+
+#endif /* __GST_CONTROLLER_H__ */
diff --git a/libs/gst/controller/gstargbcontrolbinding.c b/libs/gst/controller/gstargbcontrolbinding.c
index be0e5ed..10506ee 100644
--- a/libs/gst/controller/gstargbcontrolbinding.c
+++ b/libs/gst/controller/gstargbcontrolbinding.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstargbcontrolbinding
@@ -104,26 +104,22 @@
   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);
+      GST_TYPE_CONTROL_SOURCE, G_PARAM_READWRITE | 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);
+      GST_TYPE_CONTROL_SOURCE, G_PARAM_READWRITE | 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);
+      GST_TYPE_CONTROL_SOURCE, G_PARAM_READWRITE | 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);
+      GST_TYPE_CONTROL_SOURCE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (gobject_class, PROP_LAST, properties);
 }
@@ -164,16 +160,20 @@
 
   switch (prop_id) {
     case PROP_CS_A:
-      self->cs_a = g_value_dup_object (value);
+      gst_object_replace ((GstObject **) & self->cs_a,
+          g_value_dup_object (value));
       break;
     case PROP_CS_R:
-      self->cs_r = g_value_dup_object (value);
+      gst_object_replace ((GstObject **) & self->cs_r,
+          g_value_dup_object (value));
       break;
     case PROP_CS_G:
-      self->cs_r = g_value_dup_object (value);
+      gst_object_replace ((GstObject **) & self->cs_g,
+          g_value_dup_object (value));
       break;
     case PROP_CS_B:
-      self->cs_g = g_value_dup_object (value);
+      gst_object_replace ((GstObject **) & self->cs_b,
+          g_value_dup_object (value));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -211,14 +211,10 @@
 {
   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);
+  gst_object_replace ((GstObject **) & self->cs_a, NULL);
+  gst_object_replace ((GstObject **) & self->cs_r, NULL);
+  gst_object_replace ((GstObject **) & self->cs_g, NULL);
+  gst_object_replace ((GstObject **) & self->cs_b, NULL);
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
diff --git a/libs/gst/controller/gstargbcontrolbinding.h b/libs/gst/controller/gstargbcontrolbinding.h
index 26bfc6d..6b51197 100644
--- a/libs/gst/controller/gstargbcontrolbinding.h
+++ b/libs/gst/controller/gstargbcontrolbinding.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ARGB_CONTROL_BINDING_H__
diff --git a/libs/gst/controller/gstdirectcontrolbinding.c b/libs/gst/controller/gstdirectcontrolbinding.c
index 14f730e..b7d06bc 100644
--- a/libs/gst/controller/gstdirectcontrolbinding.c
+++ b/libs/gst/controller/gstdirectcontrolbinding.c
@@ -16,18 +16,18 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstdirectcontrolbinding
  * @short_description: direct attachment for control sources
  *
  * A value mapping object that attaches control sources to gobject properties. It
- * will map the control values [0.0 ... 1.0] to the target property range.
+ * will map the control values [0.0 ... 1.0] to the target property range. If a
+ * control value is outside of the range, it will be clipped.
  */
 
-
 #include <glib-object.h>
 #include <gst/gst.h>
 
@@ -177,8 +177,7 @@
   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);
+      GST_TYPE_CONTROL_SOURCE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (gobject_class, PROP_LAST, properties);
 }
diff --git a/libs/gst/controller/gstdirectcontrolbinding.h b/libs/gst/controller/gstdirectcontrolbinding.h
index 24ece6d..597e5b0 100644
--- a/libs/gst/controller/gstdirectcontrolbinding.h
+++ b/libs/gst/controller/gstdirectcontrolbinding.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DIRECT_CONTROL_BINDING_H__
diff --git a/libs/gst/controller/gstinterpolationcontrolsource.c b/libs/gst/controller/gstinterpolationcontrolsource.c
index d184f7d..0aea6cd 100644
--- a/libs/gst/controller/gstinterpolationcontrolsource.c
+++ b/libs/gst/controller/gstinterpolationcontrolsource.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/controller/gstinterpolationcontrolsource.h b/libs/gst/controller/gstinterpolationcontrolsource.h
index daf17bd..f4b2fbf 100644
--- a/libs/gst/controller/gstinterpolationcontrolsource.h
+++ b/libs/gst/controller/gstinterpolationcontrolsource.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_INTERPOLATION_CONTROL_SOURCE_H__
diff --git a/libs/gst/controller/gstlfocontrolsource.c b/libs/gst/controller/gstlfocontrolsource.c
index 20ee0fd..df7a439 100644
--- a/libs/gst/controller/gstlfocontrolsource.c
+++ b/libs/gst/controller/gstlfocontrolsource.c
@@ -17,25 +17,26 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
  * SECTION:gstlfocontrolsource
  * @short_description: LFO control source
  *
- * #GstLFOControlSource is a #GstControlSource, that provides several periodic waveforms
- * as control values. It supports all fundamental, numeric GValue types as property.
+ * #GstLFOControlSource is a #GstControlSource, that provides several periodic
+ * waveforms as control values.
  *
- * To use #GstLFOControlSource get a new instance by calling gst_lfo_control_source_new(),
- * bind it to a #GParamSpec and set the relevant properties or use
- * gst_lfo_control_source_set_waveform.
+ * To use #GstLFOControlSource get a new instance by calling
+ * gst_lfo_control_source_new(), bind it to a #GParamSpec and set the relevant
+ * properties.
  *
  * All functions are MT-safe.
- *
  */
 
+#include <float.h>
+
 #include <glib-object.h>
 #include <gst/gst.h>
 #include <gst/gstcontrolsource.h>
@@ -453,6 +454,7 @@
   self->priv->waveform = gst_lfo_control_source_set_waveform (self,
       GST_LFO_WAVEFORM_SINE);
   self->priv->frequency = 1.0;
+  self->priv->amplitude = 1.0;
   self->priv->period = GST_SECOND / self->priv->frequency;
   self->priv->timeshift = 0;
 
@@ -486,8 +488,7 @@
     case PROP_FREQUENCY:{
       gdouble frequency = g_value_get_double (value);
 
-      g_return_if_fail (frequency > 0
-          || ((GstClockTime) (GST_SECOND / frequency)) != 0);
+      g_return_if_fail (((GstClockTime) (GST_SECOND / frequency)) != 0);
 
       g_mutex_lock (&self->lock);
       self->priv->frequency = frequency;
@@ -574,7 +575,7 @@
    */
   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,
+          "Frequency of the waveform", DBL_MIN, G_MAXDOUBLE, 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 2ce6d84..337ab53 100644
--- a/libs/gst/controller/gstlfocontrolsource.h
+++ b/libs/gst/controller/gstlfocontrolsource.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_LFO_CONTROL_SOURCE_H__
diff --git a/libs/gst/controller/gsttimedvaluecontrolsource.c b/libs/gst/controller/gsttimedvaluecontrolsource.c
index bdd41b5..19cb927 100644
--- a/libs/gst/controller/gsttimedvaluecontrolsource.c
+++ b/libs/gst/controller/gsttimedvaluecontrolsource.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -105,12 +105,13 @@
  * gst_control_point_find:
  * @p1: a pointer to a #GstControlPoint
  * @p2: a pointer to a #GstClockTime
+ * @user_data: supplied user data
  *
- * Compare function for g_list operations that operates on a #GstControlPoint and
+ * Compare function for g_sequence operations that operates on a #GstControlPoint and
  * a #GstClockTime.
  */
 static gint
-gst_control_point_find (gconstpointer p1, gconstpointer p2)
+gst_control_point_find (gconstpointer p1, gconstpointer p2, gpointer user_data)
 {
   GstClockTime ct1 = ((GstControlPoint *) p1)->timestamp;
   GstClockTime ct2 = *(GstClockTime *) p2;
diff --git a/libs/gst/controller/gsttimedvaluecontrolsource.h b/libs/gst/controller/gsttimedvaluecontrolsource.h
index 06577cb..aea2a44 100644
--- a/libs/gst/controller/gsttimedvaluecontrolsource.h
+++ b/libs/gst/controller/gsttimedvaluecontrolsource.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TIMED_VALUE_CONTROL_SOURCE_H__
diff --git a/libs/gst/controller/gsttriggercontrolsource.c b/libs/gst/controller/gsttriggercontrolsource.c
index 94636be..64d99d4 100644
--- a/libs/gst/controller/gsttriggercontrolsource.c
+++ b/libs/gst/controller/gsttriggercontrolsource.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
  /**
@@ -68,7 +68,7 @@
   if (GST_CLOCK_DIFF (cp->timestamp, timestamp) <= tolerance) {
     found = TRUE;
   } else {
-    if ((iter = g_sequence_iter_next (iter))) {
+    if ((iter = g_sequence_iter_next (iter)) && !g_sequence_iter_is_end (iter)) {
       cp = g_sequence_get (iter);
       if (GST_CLOCK_DIFF (timestamp, cp->timestamp) <= tolerance) {
         found = TRUE;
diff --git a/libs/gst/controller/gsttriggercontrolsource.h b/libs/gst/controller/gsttriggercontrolsource.h
index 1f1f132..16e3ac9 100644
--- a/libs/gst/controller/gsttriggercontrolsource.h
+++ b/libs/gst/controller/gsttriggercontrolsource.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/libs/gst/helpers/Makefile.in b/libs/gst/helpers/Makefile.in
index 7a4b757..f55da45 100644
--- a/libs/gst/helpers/Makefile.in
+++ b/libs/gst/helpers/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 helpers_PROGRAMS = gst-plugin-scanner$(EXEEXT)
 subdir = libs/gst/helpers
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -107,10 +136,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 gst_plugin_scanner_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(gst_plugin_scanner_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -123,20 +165,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(gst_plugin_scanner_SOURCES)
 DIST_SOURCES = $(gst_plugin_scanner_SOURCES)
 am__can_run_installinfo = \
@@ -144,6 +182,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -245,15 +300,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -263,11 +314,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -275,6 +324,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -337,6 +387,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -478,10 +529,12 @@
 	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; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -502,7 +555,8 @@
 	@list='$(helpers_PROGRAMS)'; test -n "$(helpersdir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(helpersdir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(helpersdir)" && rm -f $$files
@@ -515,6 +569,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) $(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)
@@ -568,26 +623,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -599,15 +643,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -616,6 +656,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -761,19 +816,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-helpersPROGRAMS 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-helpersPROGRAMS install-html install-html-am \
-	install-info install-info-am 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-helpersPROGRAMS
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-helpersPROGRAMS clean-libtool cscopelist-am ctags \
+	ctags-am 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-helpersPROGRAMS install-html \
+	install-html-am install-info install-info-am 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 tags-am uninstall uninstall-am \
+	uninstall-helpersPROGRAMS
 
 
 Android.mk: Makefile.am
diff --git a/libs/gst/helpers/gst-plugin-scanner.c b/libs/gst/helpers/gst-plugin-scanner.c
index 09cb852..b5b3980 100644
--- a/libs/gst/helpers/gst-plugin-scanner.c
+++ b/libs/gst/helpers/gst-plugin-scanner.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * Helper binary that does plugin-loading out of process and feeds results
  * back to the parent over fds.
diff --git a/libs/gst/net/Makefile.am b/libs/gst/net/Makefile.am
index a75742d..dbd342b 100644
--- a/libs/gst/net/Makefile.am
+++ b/libs/gst/net/Makefile.am
@@ -2,6 +2,7 @@
 
 libgstnet_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/net
 libgstnet_@GST_API_VERSION@_include_HEADERS = \
+    net.h \
     gstnet.h \
     gstnetaddressmeta.h \
     gstnetclientclock.h \
@@ -43,11 +44,11 @@
 
 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"
+gir_cincludes=--c-include="gst/net/net.h"
 
 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 \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstNet \
 		--strip-prefix=Gst \
 		--warn-all \
@@ -59,7 +60,6 @@
 		$(gir_cincludes) \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
 		--library=libgstnet-@GST_API_VERSION@.la \
 		--include=Gst-@GST_API_VERSION@ \
 		--include=Gio-2.0 \
diff --git a/libs/gst/net/Makefile.in b/libs/gst/net/Makefile.in
index 7ba59fe..7083f0d 100644
--- a/libs/gst/net/Makefile.in
+++ b/libs/gst/net/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,15 @@
 target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/net
-DIST_COMMON = $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstnet_@GST_API_VERSION@_include_HEADERS)
 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 \
@@ -88,12 +115,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -144,10 +173,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstnet_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstnet_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -160,20 +202,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstnet_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstnet_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -183,8 +221,7 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstnet_@GST_API_VERSION@_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -284,15 +321,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -302,11 +335,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -314,6 +345,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -376,6 +408,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -469,6 +502,7 @@
 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 = \
+    net.h \
     gstnet.h \
     gstnetaddressmeta.h \
     gstnetclientclock.h \
@@ -488,7 +522,7 @@
 @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"
+@HAVE_INTROSPECTION_TRUE@gir_cincludes = --c-include="gst/net/net.h"
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -530,6 +564,7 @@
 $(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)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -556,12 +591,15 @@
 
 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
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -693,58 +731,12 @@
 	@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|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-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
+ctags CTAGS:
 
-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
+cscope cscopelist:
 
-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'`; \
@@ -822,8 +814,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -891,10 +882,10 @@
 
 .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 \
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool 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-girDATA \
 	install-html install-html-am install-info install-info-am \
@@ -905,7 +896,7 @@
 	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-girDATA \
+	tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstnet_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
@@ -930,7 +921,7 @@
 
 @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@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstNet \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
@@ -942,7 +933,6 @@
 @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_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 \
diff --git a/libs/gst/net/gstnet.h b/libs/gst/net/gstnet.h
index 078cad5..96cc8b8 100644
--- a/libs/gst/net/gstnet.h
+++ b/libs/gst/net/gstnet.h
@@ -13,18 +13,17 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
 #ifndef __GST_NET_H__
 #define __GST_NET_H__
 
-
+#include <gst/net/gstnetaddressmeta.h>
 #include <gst/net/gstnetclientclock.h>
 #include <gst/net/gstnettimepacket.h>
 #include <gst/net/gstnettimeprovider.h>
 
-
 #endif /* __GST_NET_H__ */
diff --git a/libs/gst/net/gstnetaddressmeta.c b/libs/gst/net/gstnetaddressmeta.c
index 5b87afe..118a685 100644
--- a/libs/gst/net/gstnetaddressmeta.c
+++ b/libs/gst/net/gstnetaddressmeta.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/libs/gst/net/gstnetaddressmeta.h b/libs/gst/net/gstnetaddressmeta.h
index 0173d87..feb64d8 100644
--- a/libs/gst/net/gstnetaddressmeta.h
+++ b/libs/gst/net/gstnetaddressmeta.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_NET_ADDRESS_META_H__
diff --git a/libs/gst/net/gstnetclientclock.c b/libs/gst/net/gstnetclientclock.c
index 47e0f0b..7d9843f 100644
--- a/libs/gst/net/gstnetclientclock.c
+++ b/libs/gst/net/gstnetclientclock.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstnetclientclock
@@ -350,18 +350,34 @@
   GInetAddress *inetaddr;
   GSocket *socket;
   GError *error = NULL;
+  GSocketFamily family;
 
   g_return_val_if_fail (self->priv->address != NULL, FALSE);
   g_return_val_if_fail (self->priv->servaddr == NULL, FALSE);
 
-  socket = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM,
+  /* create target address */
+  inetaddr = g_inet_address_new_from_string (self->priv->address);
+  if (inetaddr == NULL)
+    goto bad_address;
+
+  family = g_inet_address_get_family (inetaddr);
+
+  servaddr = g_inet_socket_address_new (inetaddr, self->priv->port);
+  g_object_unref (inetaddr);
+
+  g_assert (servaddr != NULL);
+
+  GST_DEBUG_OBJECT (self, "will communicate with %s:%d", self->priv->address,
+      self->priv->port);
+
+  socket = g_socket_new (family, G_SOCKET_TYPE_DATAGRAM,
       G_SOCKET_PROTOCOL_UDP, &error);
 
   if (socket == NULL)
     goto no_socket;
 
   GST_DEBUG_OBJECT (self, "binding socket");
-  inetaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4);
+  inetaddr = g_inet_address_new_any (family);
   anyaddr = g_inet_socket_address_new (inetaddr, 0);
   g_socket_bind (socket, anyaddr, TRUE, &error);
   g_object_unref (anyaddr);
@@ -381,20 +397,6 @@
 
   g_object_unref (myaddr);
 
-  /* create target address */
-  inetaddr = g_inet_address_new_from_string (self->priv->address);
-
-  if (inetaddr == NULL)
-    goto bad_address;
-
-  servaddr = g_inet_socket_address_new (inetaddr, self->priv->port);
-  g_object_unref (inetaddr);
-
-  g_assert (servaddr != NULL);
-
-  GST_DEBUG_OBJECT (self, "will communicate with %s:%d", self->priv->address,
-      self->priv->port);
-
   self->priv->cancel = g_cancellable_new ();
   self->priv->socket = socket;
   self->priv->servaddr = G_SOCKET_ADDRESS (servaddr);
@@ -432,7 +434,6 @@
   {
     GST_ERROR_OBJECT (self, "inet_address_new_from_string('%s') failed",
         self->priv->address);
-    g_object_unref (socket);
     return FALSE;
   }
 no_thread:
diff --git a/libs/gst/net/gstnetclientclock.h b/libs/gst/net/gstnetclientclock.h
index a0fcf1f..8e59807 100644
--- a/libs/gst/net/gstnetclientclock.h
+++ b/libs/gst/net/gstnetclientclock.h
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/libs/gst/net/gstnettimepacket.c b/libs/gst/net/gstnettimepacket.c
index 6d18ab6..f6b3bef 100644
--- a/libs/gst/net/gstnettimepacket.c
+++ b/libs/gst/net/gstnettimepacket.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstnettimepacket
diff --git a/libs/gst/net/gstnettimepacket.h b/libs/gst/net/gstnettimepacket.h
index 8839596..3f82264 100644
--- a/libs/gst/net/gstnettimepacket.h
+++ b/libs/gst/net/gstnettimepacket.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/libs/gst/net/gstnettimeprovider.c b/libs/gst/net/gstnettimeprovider.c
index f008c00..a31171d 100644
--- a/libs/gst/net/gstnettimeprovider.c
+++ b/libs/gst/net/gstnettimeprovider.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstnettimeprovider
@@ -280,6 +280,7 @@
   GSocket *socket;
   GError *err = NULL;
   int port;
+  gchar *address;
 
   if (self->priv->address) {
     inet_addr = g_inet_address_new_from_string (self->priv->address);
@@ -307,14 +308,25 @@
 
   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);
+  inet_addr =
+      g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (bound_addr));
+  address = g_inet_address_to_string (inet_addr);
 
+  if (g_strcmp0 (address, self->priv->address)) {
+    g_free (self->priv->address);
+    self->priv->address = address;
+    GST_DEBUG_OBJECT (self, "notifying address %s", address);
+    g_object_notify (G_OBJECT (self), "address");
+  } else {
+    g_free (address);
+  }
   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_DEBUG_OBJECT (self, "bound on UDP address %s, port %d", address, port);
+  g_object_unref (bound_addr);
 
   self->priv->socket = socket;
   self->priv->cancel = g_cancellable_new ();
@@ -382,7 +394,7 @@
 /**
  * gst_net_time_provider_new:
  * @clock: a #GstClock to export over the network
- * @address: an address to bind on as a dotted quad (xxx.xxx.xxx.xxx), or NULL
+ * @address: an address to bind on as a dotted quad (xxx.xxx.xxx.xxx), IPv6 address, or NULL
  *           to bind to all addresses
  * @port: a port to bind on, or 0 to let the kernel choose
  *
diff --git a/libs/gst/net/gstnettimeprovider.h b/libs/gst/net/gstnettimeprovider.h
index 81c0fbe..d9834c2 100644
--- a/libs/gst/net/gstnettimeprovider.h
+++ b/libs/gst/net/gstnettimeprovider.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/libs/gst/net/net.h b/libs/gst/net/net.h
new file mode 100644
index 0000000..1ef53d6
--- /dev/null
+++ b/libs/gst/net/net.h
@@ -0,0 +1,31 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * net.h: single include header for gst-net library
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_NET__H__
+#define __GST_NET__H__
+
+#include <gst/net/gstnet.h>
+#include <gst/net/gstnetaddressmeta.h>
+#include <gst/net/gstnetclientclock.h>
+#include <gst/net/gstnettimepacket.h>
+#include <gst/net/gstnettimeprovider.h>
+
+#endif /* __GST_NET__H__ */
diff --git a/ltmain.sh b/ltmain.sh
index 499e473..68c6d96 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.2
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.3
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.2"
+VERSION="2.4.2 Debian-2.4.2-1.3"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 07967a7..abc3070 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = m4
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,24 +109,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,15 +242,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -225,11 +256,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -237,6 +266,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,6 +329,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -429,11 +460,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -569,15 +600,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index 46aedd4..1d45159 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,24 +80,23 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = pkgconfig
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/gstreamer-base-uninstalled.pc.in \
-	$(srcdir)/gstreamer-base.pc.in \
-	$(srcdir)/gstreamer-check-uninstalled.pc.in \
-	$(srcdir)/gstreamer-check.pc.in \
-	$(srcdir)/gstreamer-controller-uninstalled.pc.in \
-	$(srcdir)/gstreamer-controller.pc.in \
-	$(srcdir)/gstreamer-net-uninstalled.pc.in \
-	$(srcdir)/gstreamer-net.pc.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/gstreamer.pc.in \
 	$(srcdir)/gstreamer-uninstalled.pc.in \
-	$(srcdir)/gstreamer.pc.in
+	$(srcdir)/gstreamer-base.pc.in \
+	$(srcdir)/gstreamer-base-uninstalled.pc.in \
+	$(srcdir)/gstreamer-check.pc.in \
+	$(srcdir)/gstreamer-check-uninstalled.pc.in \
+	$(srcdir)/gstreamer-controller.pc.in \
+	$(srcdir)/gstreamer-controller-uninstalled.pc.in \
+	$(srcdir)/gstreamer-net.pc.in \
+	$(srcdir)/gstreamer-net-uninstalled.pc.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 \
@@ -94,12 +120,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -110,12 +138,18 @@
 	gstreamer-controller.pc gstreamer-controller-uninstalled.pc \
 	gstreamer-net.pc gstreamer-net-uninstalled.pc
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -152,6 +186,7 @@
   }
 am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -251,15 +286,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -269,11 +300,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -281,6 +310,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -343,6 +373,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -551,11 +582,11 @@
 	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -695,16 +726,17 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool distclean distclean-generic distclean-libtool \
-	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-pkgconfigDATA install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am uninstall uninstall-am uninstall-pkgconfigDATA
+	clean-libtool cscopelist-am ctags-am distclean \
+	distclean-generic distclean-libtool 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-pkgconfigDATA install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-pkgconfigDATA
 
 
 all-local: $(pcfiles) $(pcfiles_uninstalled)
diff --git a/pkgconfig/gstreamer-uninstalled.pc.in b/pkgconfig/gstreamer-uninstalled.pc.in
index 9e5602b..ac1eeef 100644
--- a/pkgconfig/gstreamer-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-uninstalled.pc.in
@@ -12,7 +12,8 @@
 Name: GStreamer Uninstalled
 Description: Streaming media framework, Not Installed
 Version: @VERSION@
-Requires: @GST_PKG_DEPS@
+Requires: glib-2.0, gobject-2.0
+Requires.private: gmodule-no-export-2.0
 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 914e186..b949d6c 100644
--- a/pkgconfig/gstreamer.pc.in
+++ b/pkgconfig/gstreamer.pc.in
@@ -11,7 +11,8 @@
 
 Name: GStreamer
 Description: Streaming media framework
-Requires: @GST_PKG_DEPS@
 Version: @VERSION@
+Requires: glib-2.0, gobject-2.0
+Requires.private: gmodule-no-export-2.0
 Libs: -L${libdir} -lgstreamer-@GST_API_VERSION@
 Cflags: -I${includedir}
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index f3318b0..ffdad8d 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = plugins
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,33 +109,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -246,15 +301,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -264,11 +315,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -276,6 +325,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -338,6 +388,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -471,22 +522,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -501,57 +555,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -567,12 +576,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -584,15 +588,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -601,6 +601,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -761,22 +776,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 Android.mk: Makefile.am
diff --git a/plugins/elements/Makefile.am b/plugins/elements/Makefile.am
index baebb7f..5166c02 100644
--- a/plugins/elements/Makefile.am
+++ b/plugins/elements/Makefile.am
@@ -15,9 +15,7 @@
 	gstidentity.c		\
 	gstinputselector.c	\
 	gstoutputselector.c	\
-	gstdataqueue.c 		\
 	gstmultiqueue.c		\
-	gstqueuearray.c \
 	gstqueue.c		\
 	gstqueue2.c		\
 	gsttee.c		\
@@ -43,9 +41,7 @@
 	gstidentity.h		\
 	gstinputselector.h	\
 	gstoutputselector.h	\
-	gstdataqueue.h 		\
 	gstmultiqueue.h		\
-	gstqueuearray.h \
 	gstqueue.h		\
 	gstqueue2.h		\
 	gsttee.h		\
diff --git a/plugins/elements/Makefile.in b/plugins/elements/Makefile.in
index d667bc8..a7dc786 100644
--- a/plugins/elements/Makefile.in
+++ b/plugins/elements/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = plugins/elements
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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 \
@@ -86,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -141,9 +169,7 @@
 	libgstcoreelements_la-gstidentity.lo \
 	libgstcoreelements_la-gstinputselector.lo \
 	libgstcoreelements_la-gstoutputselector.lo \
-	libgstcoreelements_la-gstdataqueue.lo \
 	libgstcoreelements_la-gstmultiqueue.lo \
-	libgstcoreelements_la-gstqueuearray.lo \
 	libgstcoreelements_la-gstqueue.lo \
 	libgstcoreelements_la-gstqueue2.lo \
 	libgstcoreelements_la-gsttee.lo \
@@ -153,10 +179,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstcoreelements_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) \
 	$(libgstcoreelements_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -169,20 +208,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstcoreelements_la_SOURCES)
 DIST_SOURCES = $(libgstcoreelements_la_SOURCES)
 am__can_run_installinfo = \
@@ -191,6 +226,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -292,15 +344,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -310,11 +358,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -322,6 +368,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -384,6 +431,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -489,9 +537,7 @@
 	gstidentity.c		\
 	gstinputselector.c	\
 	gstoutputselector.c	\
-	gstdataqueue.c 		\
 	gstmultiqueue.c		\
-	gstqueuearray.c \
 	gstqueue.c		\
 	gstqueue2.c		\
 	gsttee.c		\
@@ -517,9 +563,7 @@
 	gstidentity.h		\
 	gstinputselector.h	\
 	gstoutputselector.h	\
-	gstdataqueue.h 		\
 	gstmultiqueue.h		\
-	gstqueuearray.h \
 	gstqueue.h		\
 	gstqueue2.h		\
 	gsttee.h		\
@@ -564,6 +608,7 @@
 $(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)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -590,12 +635,15 @@
 
 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
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 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)
 
@@ -606,7 +654,6 @@
 	-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@
@@ -621,7 +668,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstoutputselector.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstqueue.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstqueue2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstqueuearray.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gsttee.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gsttypefindelement.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstvalve.Plo@am__quote@
@@ -731,13 +777,6 @@
 @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-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
@@ -745,13 +784,6 @@
 @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-gstmultiqueue.lo `test -f 'gstmultiqueue.c' || echo '$(srcdir)/'`gstmultiqueue.c
 
-libgstcoreelements_la-gstqueuearray.lo: gstqueuearray.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-gstqueuearray.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstqueuearray.Tpo -c -o libgstcoreelements_la-gstqueuearray.lo `test -f 'gstqueuearray.c' || echo '$(srcdir)/'`gstqueuearray.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstqueuearray.Tpo $(DEPDIR)/libgstcoreelements_la-gstqueuearray.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqueuearray.c' object='libgstcoreelements_la-gstqueuearray.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-gstqueuearray.lo `test -f 'gstqueuearray.c' || echo '$(srcdir)/'`gstqueuearray.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
@@ -793,26 +825,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -824,15 +845,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -841,6 +858,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -986,19 +1018,20 @@
 
 .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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 %.c.gcov: .libs/libgstcoreelements_la-%.gcda %.c
diff --git a/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c
index fd6a094..c5710ea 100644
--- a/plugins/elements/gstcapsfilter.c
+++ b/plugins/elements/gstcapsfilter.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-capsfilter
@@ -83,6 +83,9 @@
     GstBuffer * buf);
 static GstFlowReturn gst_capsfilter_prepare_buf (GstBaseTransform * trans,
     GstBuffer * input, GstBuffer ** buf);
+static gboolean gst_capsfilter_sink_event (GstBaseTransform * trans,
+    GstEvent * event);
+static gboolean gst_capsfilter_stop (GstBaseTransform * trans);
 
 static void
 gst_capsfilter_class_init (GstCapsFilterClass * klass)
@@ -121,6 +124,8 @@
   trans_class->accept_caps = GST_DEBUG_FUNCPTR (gst_capsfilter_accept_caps);
   trans_class->prepare_output_buffer =
       GST_DEBUG_FUNCPTR (gst_capsfilter_prepare_buf);
+  trans_class->sink_event = GST_DEBUG_FUNCPTR (gst_capsfilter_sink_event);
+  trans_class->stop = GST_DEBUG_FUNCPTR (gst_capsfilter_stop);
 }
 
 static void
@@ -193,6 +198,8 @@
   GstCapsFilter *filter = GST_CAPSFILTER (object);
 
   gst_caps_replace (&filter->filter_caps, NULL);
+  g_list_free_full (filter->pending_events, (GDestroyNotify) gst_event_unref);
+  filter->pending_events = NULL;
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
@@ -268,11 +275,11 @@
   return GST_FLOW_OK;
 }
 
-/* Output buffer preparation... if the buffer has no caps, and
- * our allowed output caps is fixed, then give the caps to the
- * buffer.
- * This ensures that outgoing buffers have caps if we can, so
- * that pipelines like:
+/* Ouput buffer preparation ... if the buffer has no caps, and our allowed
+ * output caps is fixed, then send the caps downstream, making sure caps are
+ * sent before segment event.
+ *
+ * This ensures that caps event is sent if we can, so that pipelines like:
  *   gst-launch filesrc location=rawsamples.raw !
  *       audio/x-raw,format=S16LE,rate=48000,channels=2 ! alsasink
  * will work.
@@ -287,11 +294,15 @@
   *buf = input;
 
   if (!gst_pad_has_current_caps (trans->sinkpad)) {
-    /* Buffer has no caps. See if the output pad only supports fixed caps */
+    /* No caps. See if the output pad only supports fixed caps */
+    GstCapsFilter *filter = GST_CAPSFILTER (trans);
     GstCaps *out_caps;
+    GList *pending_events = filter->pending_events;
 
     GST_LOG_OBJECT (trans, "Input pad does not have caps");
 
+    filter->pending_events = NULL;
+
     out_caps = gst_pad_get_current_caps (trans->srcpad);
     if (out_caps == NULL) {
       out_caps = gst_pad_get_allowed_caps (trans->srcpad);
@@ -304,9 +315,26 @@
       GST_DEBUG_OBJECT (trans, "Have fixed output caps %"
           GST_PTR_FORMAT " to apply to srcpad", out_caps);
 
-      if (!gst_pad_has_current_caps (trans->srcpad))
-        if (!gst_pad_set_caps (trans->srcpad, out_caps))
+      if (!gst_pad_has_current_caps (trans->srcpad)) {
+        if (gst_pad_set_caps (trans->srcpad, out_caps)) {
+          if (pending_events) {
+            GList *l;
+
+            for (l = g_list_last (pending_events); l; l = l->prev) {
+              GST_LOG_OBJECT (trans, "Forwarding %s event",
+                  GST_EVENT_TYPE_NAME (l->data));
+              GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans,
+                  l->data);
+            }
+            g_list_free (pending_events);
+            pending_events = NULL;
+          }
+        } else {
           ret = GST_FLOW_NOT_NEGOTIATED;
+        }
+      }
+
+      g_list_free_full (pending_events, (GDestroyNotify) gst_event_unref);
       gst_caps_unref (out_caps);
     } else {
       gchar *caps_str = gst_caps_to_string (out_caps);
@@ -315,13 +343,75 @@
           GST_PTR_FORMAT, out_caps);
       gst_caps_unref (out_caps);
 
-      ret = GST_FLOW_ERROR;
       GST_ELEMENT_ERROR (trans, STREAM, FORMAT,
           ("Filter caps do not completely specify the output format"),
           ("Output caps are unfixed: %s", caps_str));
+
       g_free (caps_str);
+      g_list_free_full (pending_events, (GDestroyNotify) gst_event_unref);
+
+      ret = GST_FLOW_ERROR;
     }
   }
 
   return ret;
 }
+
+/* Queue the segment event if there was no caps event */
+static gboolean
+gst_capsfilter_sink_event (GstBaseTransform * trans, GstEvent * event)
+{
+  GstCapsFilter *filter = GST_CAPSFILTER (trans);
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+    GList *l;
+
+    for (l = filter->pending_events; l;) {
+      if (GST_EVENT_TYPE (l->data) == GST_EVENT_SEGMENT) {
+        gst_event_unref (l->data);
+        l = g_list_delete_link (l, l);
+      } else {
+        l = l->next;
+      }
+    }
+  }
+
+  if (!GST_EVENT_IS_STICKY (event) || GST_EVENT_TYPE (event) <= GST_EVENT_CAPS)
+    goto done;
+
+  /* If we get EOS before any buffers, just push all pending events */
+  if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
+    GList *l;
+
+    for (l = g_list_last (filter->pending_events); l; l = l->prev) {
+      GST_LOG_OBJECT (trans, "Forwarding %s event",
+          GST_EVENT_TYPE_NAME (l->data));
+      GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, l->data);
+    }
+    g_list_free (filter->pending_events);
+    filter->pending_events = NULL;
+  } else if (!gst_pad_has_current_caps (trans->sinkpad)) {
+    GST_LOG_OBJECT (trans, "Got %s event before caps, queueing",
+        GST_EVENT_TYPE_NAME (event));
+
+    filter->pending_events = g_list_prepend (filter->pending_events, event);
+
+    return TRUE;
+  }
+
+done:
+
+  GST_LOG_OBJECT (trans, "Forwarding %s event", GST_EVENT_TYPE_NAME (event));
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event);
+}
+
+static gboolean
+gst_capsfilter_stop (GstBaseTransform * trans)
+{
+  GstCapsFilter *filter = GST_CAPSFILTER (trans);
+
+  g_list_free_full (filter->pending_events, (GDestroyNotify) gst_event_unref);
+  filter->pending_events = NULL;
+
+  return TRUE;
+}
diff --git a/plugins/elements/gstcapsfilter.h b/plugins/elements/gstcapsfilter.h
index 9db6ebc..ab9ac1f 100644
--- a/plugins/elements/gstcapsfilter.h
+++ b/plugins/elements/gstcapsfilter.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -53,6 +53,7 @@
   GstBaseTransform trans;
 
   GstCaps *filter_caps;
+  GList *pending_events;
 };
 
 struct _GstCapsFilterClass {
diff --git a/plugins/elements/gstelements.c b/plugins/elements/gstelements.c
index 6ba95d0..23f85c1 100644
--- a/plugins/elements/gstelements.c
+++ b/plugins/elements/gstelements.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -105,5 +105,5 @@
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, coreelements,
-    " GStreamer core elements", plugin_init, VERSION, GST_LICENSE,
+    "GStreamer core 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 2e28b01..1b8c7c3 100644
--- a/plugins/elements/gstfakesink.c
+++ b/plugins/elements/gstfakesink.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-fakesink
diff --git a/plugins/elements/gstfakesink.h b/plugins/elements/gstfakesink.h
index 274b45a..72b3671 100644
--- a/plugins/elements/gstfakesink.h
+++ b/plugins/elements/gstfakesink.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index ce43c38..e8458cd 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-fakesrc
diff --git a/plugins/elements/gstfakesrc.h b/plugins/elements/gstfakesrc.h
index 3ed0e60..e4acb9c 100644
--- a/plugins/elements/gstfakesrc.h
+++ b/plugins/elements/gstfakesrc.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstfdsink.c b/plugins/elements/gstfdsink.c
index 74d30ca..94d27b4 100644
--- a/plugins/elements/gstfdsink.c
+++ b/plugins/elements/gstfdsink.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/plugins/elements/gstfdsink.h b/plugins/elements/gstfdsink.h
index 643453d..3d7ee31 100644
--- a/plugins/elements/gstfdsink.h
+++ b/plugins/elements/gstfdsink.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstfdsrc.c b/plugins/elements/gstfdsrc.c
index a29d84c..b6077a6 100644
--- a/plugins/elements/gstfdsrc.c
+++ b/plugins/elements/gstfdsrc.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-fdsrc
diff --git a/plugins/elements/gstfdsrc.h b/plugins/elements/gstfdsrc.h
index 16e696f..bafae48 100644
--- a/plugins/elements/gstfdsrc.h
+++ b/plugins/elements/gstfdsrc.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c
index 4cb0025..6700b13 100644
--- a/plugins/elements/gstfilesink.c
+++ b/plugins/elements/gstfilesink.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-filesink
diff --git a/plugins/elements/gstfilesink.h b/plugins/elements/gstfilesink.h
index 9776550..72a9a47 100644
--- a/plugins/elements/gstfilesink.h
+++ b/plugins/elements/gstfilesink.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index 911223b..b68c279 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-filesrc
diff --git a/plugins/elements/gstfilesrc.h b/plugins/elements/gstfilesrc.h
index 18c3c41..e73cfc3 100644
--- a/plugins/elements/gstfilesrc.h
+++ b/plugins/elements/gstfilesrc.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FILE_SRC_H__
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index fb4fafe..af3a1ac 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -45,56 +45,6 @@
 GST_DEBUG_CATEGORY_STATIC (gst_funnel_debug);
 #define GST_CAT_DEFAULT gst_funnel_debug
 
-GType gst_funnel_pad_get_type (void);
-#define GST_TYPE_FUNNEL_PAD \
-  (gst_funnel_pad_get_type())
-#define GST_FUNNEL_PAD(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_FUNNEL_PAD, GstFunnelPad))
-#define GST_FUNNEL_PAD_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_FUNNEL_PAD, GstFunnelPadClass))
-#define GST_IS_FUNNEL_PAD(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_FUNNEL_PAD))
-#define GST_IS_FUNNEL_PAD_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_FUNNEL_PAD))
-#define GST_FUNNEL_PAD_CAST(obj) \
-  ((GstFunnelPad *)(obj))
-
-typedef struct _GstFunnelPad GstFunnelPad;
-typedef struct _GstFunnelPadClass GstFunnelPadClass;
-
-struct _GstFunnelPad
-{
-  GstPad parent;
-
-  GstSegment segment;
-  gboolean got_eos;
-};
-
-struct _GstFunnelPadClass
-{
-  GstPadClass parent;
-};
-
-G_DEFINE_TYPE (GstFunnelPad, gst_funnel_pad, GST_TYPE_PAD);
-
-static void
-gst_funnel_pad_class_init (GstFunnelPadClass * klass)
-{
-}
-
-static void
-gst_funnel_pad_reset (GstFunnelPad * pad)
-{
-  gst_segment_init (&pad->segment, GST_FORMAT_UNDEFINED);
-  pad->got_eos = FALSE;
-}
-
-static void
-gst_funnel_pad_init (GstFunnelPad * pad)
-{
-  gst_funnel_pad_reset (pad);
-}
-
 static GstStaticPadTemplate funnel_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink_%u",
     GST_PAD_SINK,
@@ -112,8 +62,6 @@
 #define gst_funnel_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstFunnel, gst_funnel, GST_TYPE_ELEMENT, _do_init);
 
-static GstStateChangeReturn gst_funnel_change_state (GstElement * element,
-    GstStateChange transition);
 static GstPad *gst_funnel_request_new_pad (GstElement * element,
     GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
 static void gst_funnel_release_pad (GstElement * element, GstPad * pad);
@@ -122,17 +70,15 @@
     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, GstObject * parent,
-    GstEvent * event);
 
 static void
 gst_funnel_dispose (GObject * object)
 {
+  GstFunnel *funnel = GST_FUNNEL (object);
   GList *item;
 
+  gst_object_replace ((GstObject **) & funnel->last_sinkpad, NULL);
+
 restart:
   for (item = GST_ELEMENT_PADS (object); item; item = g_list_next (item)) {
     GstPad *pad = GST_PAD (item->data);
@@ -166,7 +112,6 @@
   gstelement_class->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_funnel_request_new_pad);
   gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_funnel_release_pad);
-  gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_funnel_change_state);
 }
 
 static void
@@ -174,7 +119,6 @@
 {
   funnel->srcpad = gst_pad_new_from_static_template (&funnel_src_template,
       "src");
-  gst_pad_set_event_function (funnel->srcpad, gst_funnel_src_event);
   gst_pad_use_fixed_caps (funnel->srcpad);
   gst_element_add_pad (GST_ELEMENT (funnel), funnel->srcpad);
 }
@@ -187,16 +131,12 @@
 
   GST_DEBUG_OBJECT (element, "requesting pad");
 
-  sinkpad = GST_PAD_CAST (g_object_new (GST_TYPE_FUNNEL_PAD,
-          "name", name, "direction", templ->direction, "template", templ,
-          NULL));
+  sinkpad = gst_pad_new_from_static_template (&funnel_sink_template, name);
 
   gst_pad_set_chain_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_funnel_sink_chain));
   gst_pad_set_event_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_funnel_sink_event));
-  gst_pad_set_query_function (sinkpad,
-      GST_DEBUG_FUNCPTR (gst_funnel_sink_query));
 
   gst_pad_set_active (sinkpad, TRUE);
 
@@ -215,9 +155,14 @@
     return FALSE;
 
   for (item = element->sinkpads; item != NULL; item = g_list_next (item)) {
-    GstFunnelPad *sinkpad = item->data;
+    GstPad *sinkpad = item->data;
+    GstEvent *eos;
 
-    if (!sinkpad->got_eos)
+    eos = gst_pad_get_sticky_event (sinkpad, GST_EVENT_EOS, 0);
+    if (eos)
+      gst_event_unref (eos);
+
+    if (eos == NULL)
       return FALSE;
   }
 
@@ -228,20 +173,21 @@
 gst_funnel_release_pad (GstElement * element, GstPad * pad)
 {
   GstFunnel *funnel = GST_FUNNEL (element);
-  GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
-  gboolean got_eos;
+  GstEvent *eos;
   gboolean send_eos = FALSE;
 
   GST_DEBUG_OBJECT (funnel, "releasing pad");
 
   gst_pad_set_active (pad, FALSE);
 
-  got_eos = fpad->got_eos;
+  eos = gst_pad_get_sticky_event (pad, GST_EVENT_EOS, 0);
+  if (eos)
+    gst_event_unref (eos);
 
   gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad);
 
   GST_OBJECT_LOCK (funnel);
-  if (!got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
+  if (eos == NULL && gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
     GST_DEBUG_OBJECT (funnel, "Pad removed. All others are EOS. Sending EOS");
     send_eos = TRUE;
   }
@@ -252,78 +198,39 @@
       GST_WARNING_OBJECT (funnel, "Failure pushing EOS");
 }
 
+static gboolean
+forward_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  GstPad *srcpad = user_data;
+
+  if (GST_EVENT_TYPE (*event) != GST_EVENT_EOS)
+    gst_pad_push_event (srcpad, gst_event_ref (*event));
+
+  return TRUE;
+}
+
 static GstFlowReturn
 gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstFlowReturn res;
   GstFunnel *funnel = GST_FUNNEL (parent);
-  GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
-  GstEvent *event = NULL;
-  GstClockTime newts;
-#if 0
-  GstCaps *padcaps;
-#endif
 
   GST_DEBUG_OBJECT (funnel, "received buffer %p", buffer);
 
-  GST_OBJECT_LOCK (funnel);
+  GST_PAD_STREAM_LOCK (funnel->srcpad);
 
-  if (fpad->got_eos) {
-    GST_OBJECT_UNLOCK (funnel);
-    GST_WARNING_OBJECT (funnel, "Got buffer on pad that received EOS");
-    res = GST_FLOW_EOS;
-    gst_buffer_unref (buffer);
-    goto out;
+  if (funnel->last_sinkpad != pad) {
+    gst_object_replace ((GstObject **) & funnel->last_sinkpad,
+        GST_OBJECT (pad));
+
+    gst_pad_sticky_events_foreach (pad, forward_events, funnel->srcpad);
   }
 
-  if (fpad->segment.format == GST_FORMAT_UNDEFINED) {
-    GST_WARNING_OBJECT (funnel, "Got buffer without segment,"
-        " setting segment [0,inf[");
-    gst_segment_init (&fpad->segment, GST_FORMAT_TIME);
-  }
-
-  if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer)))
-    fpad->segment.position = GST_BUFFER_TIMESTAMP (buffer);
-
-  newts = gst_segment_to_running_time (&fpad->segment,
-      fpad->segment.format, GST_BUFFER_TIMESTAMP (buffer));
-  if (newts != GST_BUFFER_TIMESTAMP (buffer)) {
-    buffer = gst_buffer_make_writable (buffer);
-    GST_BUFFER_TIMESTAMP (buffer) = newts;
-  }
-
-  if (!funnel->has_segment) {
-    GstSegment segment;
-
-    gst_segment_init (&segment, GST_FORMAT_TIME);
-    event = gst_event_new_segment (&segment);
-    funnel->has_segment = TRUE;
-  }
-  GST_OBJECT_UNLOCK (funnel);
-
-  if (event) {
-    if (!gst_pad_push_event (funnel->srcpad, event))
-      GST_WARNING_OBJECT (funnel, "Could not push out newsegment event");
-  }
-#if 0
-  GST_OBJECT_LOCK (pad);
-  padcaps = GST_PAD_CAPS (funnel->srcpad);
-  GST_OBJECT_UNLOCK (pad);
-
-  if (GST_BUFFER_CAPS (buffer) && GST_BUFFER_CAPS (buffer) != padcaps) {
-    if (!gst_pad_set_caps (funnel->srcpad, GST_BUFFER_CAPS (buffer))) {
-      res = GST_FLOW_NOT_NEGOTIATED;
-      gst_buffer_unref (buffer);
-      goto out;
-    }
-  }
-#endif
-
   res = gst_pad_push (funnel->srcpad, buffer);
 
-  GST_LOG_OBJECT (funnel, "handled buffer %s", gst_flow_get_name (res));
+  GST_PAD_STREAM_UNLOCK (funnel->srcpad);
 
-out:
+  GST_LOG_OBJECT (funnel, "handled buffer %s", gst_flow_get_name (res));
 
   return res;
 }
@@ -332,46 +239,16 @@
 gst_funnel_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstFunnel *funnel = GST_FUNNEL (parent);
-  GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
   gboolean forward = TRUE;
   gboolean res = TRUE;
+  gboolean unlock = FALSE;
 
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_SEGMENT:
-    {
-      GST_OBJECT_LOCK (funnel);
-      gst_event_copy_segment (event, &fpad->segment);
-      GST_OBJECT_UNLOCK (funnel);
+  if (GST_EVENT_IS_STICKY (event)) {
+    unlock = TRUE;
+    GST_PAD_STREAM_LOCK (funnel->srcpad);
 
+    if (pad != funnel->last_sinkpad)
       forward = FALSE;
-      break;
-    }
-    case GST_EVENT_FLUSH_STOP:
-    {
-      GST_OBJECT_LOCK (funnel);
-      gst_segment_init (&fpad->segment, GST_FORMAT_UNDEFINED);
-      funnel->has_segment = FALSE;
-      fpad->got_eos = FALSE;
-      GST_OBJECT_UNLOCK (funnel);
-    }
-      break;
-    case GST_EVENT_EOS:
-    {
-      GST_OBJECT_LOCK (funnel);
-      fpad->got_eos = TRUE;
-
-      if (!gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
-        GST_DEBUG_OBJECT (funnel,
-            "Got EOS, but not from all sinkpads. Skipping");
-        forward = FALSE;
-      } else {
-        GST_DEBUG_OBJECT (funnel, "Got EOS from all sinkpads. Forwarding");
-      }
-      GST_OBJECT_UNLOCK (funnel);
-      break;
-    }
-    default:
-      break;
   }
 
   if (forward)
@@ -379,104 +256,8 @@
   else
     gst_event_unref (event);
 
-  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);
+  if (unlock)
+    GST_PAD_STREAM_UNLOCK (funnel->srcpad);
 
   return res;
 }
-
-static gboolean
-gst_funnel_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  GstElement *funnel;
-  GstIterator *iter;
-  GstPad *sinkpad;
-  gboolean result = FALSE;
-  gboolean done = FALSE;
-  GValue value = { 0, };
-
-  funnel = GST_ELEMENT_CAST (parent);
-
-  iter = gst_element_iterate_sink_pads (funnel);
-
-  while (!done) {
-    switch (gst_iterator_next (iter, &value)) {
-      case GST_ITERATOR_OK:
-        sinkpad = g_value_get_object (&value);
-        gst_event_ref (event);
-        result |= gst_pad_push_event (sinkpad, event);
-        g_value_reset (&value);
-        break;
-      case GST_ITERATOR_RESYNC:
-        gst_iterator_resync (iter);
-        result = FALSE;
-        break;
-      case GST_ITERATOR_ERROR:
-        GST_WARNING_OBJECT (funnel, "Error iterating sinkpads");
-      case GST_ITERATOR_DONE:
-        done = TRUE;
-        break;
-    }
-  }
-  g_value_unset (&value);
-  gst_iterator_free (iter);
-  gst_event_unref (event);
-
-  return result;
-}
-
-static void
-reset_pad (const GValue * data, gpointer user_data)
-{
-  GstPad *pad = g_value_get_object (data);
-  GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
-
-  GST_OBJECT_LOCK (pad);
-  gst_funnel_pad_reset (fpad);
-  GST_OBJECT_UNLOCK (pad);
-}
-
-static GstStateChangeReturn
-gst_funnel_change_state (GstElement * element, GstStateChange transition)
-{
-  GstFunnel *funnel = GST_FUNNEL (element);
-  GstStateChangeReturn ret;
-
-  switch (transition) {
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-    {
-      GstIterator *iter = gst_element_iterate_sink_pads (element);
-      GstIteratorResult res;
-
-      do {
-        res = gst_iterator_foreach (iter, reset_pad, NULL);
-      } while (res == GST_ITERATOR_RESYNC);
-
-      gst_iterator_free (iter);
-
-      if (res == GST_ITERATOR_ERROR)
-        return GST_STATE_CHANGE_FAILURE;
-
-      GST_OBJECT_LOCK (funnel);
-      funnel->has_segment = FALSE;
-      GST_OBJECT_UNLOCK (funnel);
-    }
-      break;
-    default:
-      break;
-  }
-
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-
-  return ret;
-}
diff --git a/plugins/elements/gstfunnel.h b/plugins/elements/gstfunnel.h
index c968fca..75b69ee 100644
--- a/plugins/elements/gstfunnel.h
+++ b/plugins/elements/gstfunnel.h
@@ -55,7 +55,7 @@
   /*< private >*/
   GstPad         *srcpad;
 
-  gboolean has_segment;
+  GstPad *last_sinkpad;
 };
 
 struct _GstFunnelClass {
diff --git a/plugins/elements/gstidentity.c b/plugins/elements/gstidentity.c
index b7718f9..c33d263 100644
--- a/plugins/elements/gstidentity.c
+++ b/plugins/elements/gstidentity.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-identity
diff --git a/plugins/elements/gstidentity.h b/plugins/elements/gstidentity.h
index 835cf94..5d613b2 100644
--- a/plugins/elements/gstidentity.h
+++ b/plugins/elements/gstidentity.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index 8ebe058..6fcda93 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -307,9 +307,13 @@
       GstInputSelector *sel;
 
       sel = GST_INPUT_SELECTOR (gst_pad_get_parent (spad));
-      g_value_set_boolean (value, gst_input_selector_is_active_sinkpad (sel,
-              GST_PAD_CAST (spad)));
-      gst_object_unref (sel);
+      if (sel) {
+        g_value_set_boolean (value, gst_input_selector_is_active_sinkpad (sel,
+                GST_PAD_CAST (spad)));
+        gst_object_unref (sel);
+      } else {
+        g_value_set_boolean (value, FALSE);
+      }
       break;
     }
     case PROP_PAD_ALWAYS_OK:
@@ -452,13 +456,19 @@
   GST_DEBUG_OBJECT (selpad, "received event %" GST_PTR_FORMAT, event);
 
   GST_INPUT_SELECTOR_LOCK (sel);
-  prev_active_sinkpad = sel->active_sinkpad;
+  prev_active_sinkpad =
+      sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL;
   active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
   if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) {
+    if (prev_active_sinkpad)
+      g_object_notify (G_OBJECT (prev_active_sinkpad), "active");
+    g_object_notify (G_OBJECT (active_sinkpad), "active");
     g_object_notify (G_OBJECT (sel), "active-pad");
   }
+  if (prev_active_sinkpad)
+    gst_object_unref (prev_active_sinkpad);
 
   GST_INPUT_SELECTOR_LOCK (sel);
   active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
@@ -494,6 +504,7 @@
           gst_event_set_seqnum (event, selpad->segment_seqnum);
         }
       }
+
       GST_DEBUG_OBJECT (pad, "configured SEGMENT %" GST_SEGMENT_FORMAT,
           &selpad->segment);
       break;
@@ -745,7 +756,7 @@
     gst_event_set_seqnum (e, GST_SELECTOR_PAD_CAST (sinkpad)->segment_seqnum);
 
     gst_pad_push_event (sel->srcpad, e);
-  } else if (GST_EVENT_TYPE (*event) != GST_EVENT_STREAM_START) {
+  } else {
     gst_pad_push_event (sel->srcpad, gst_event_ref (*event));
   }
 
@@ -918,7 +929,7 @@
   GstInputSelector *sel;
   GstFlowReturn res;
   GstPad *active_sinkpad;
-  GstPad *prev_active_sinkpad;
+  GstPad *prev_active_sinkpad = NULL;
   GstSelectorPad *selpad;
   GstClockTime start_time;
 
@@ -938,7 +949,8 @@
 
   GST_LOG_OBJECT (pad, "getting active pad");
 
-  prev_active_sinkpad = sel->active_sinkpad;
+  prev_active_sinkpad =
+      sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL;
   active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
 
   /* In sync mode wait until the active pad has advanced
@@ -1021,6 +1033,9 @@
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
   if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) {
+    if (prev_active_sinkpad)
+      g_object_notify (G_OBJECT (prev_active_sinkpad), "active");
+    g_object_notify (G_OBJECT (active_sinkpad), "active");
     g_object_notify (G_OBJECT (sel), "active-pad");
   }
 
@@ -1032,6 +1047,10 @@
     selpad->events_pending = FALSE;
   }
 
+  if (prev_active_sinkpad)
+    gst_object_unref (prev_active_sinkpad);
+  prev_active_sinkpad = NULL;
+
   if (selpad->discont) {
     buf = gst_buffer_make_writable (buf);
 
@@ -1068,6 +1087,11 @@
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
 done:
+
+  if (prev_active_sinkpad)
+    gst_object_unref (prev_active_sinkpad);
+  prev_active_sinkpad = NULL;
+
   return res;
 
   /* dropped buffers */
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index 2bfcd3e..57678f6 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  
 #ifndef __GST_INPUT_SELECTOR_H__
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index 6b89f83..9e9209c 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -185,6 +185,8 @@
 
   GDestroyNotify destroy;
   guint32 posid;
+
+  gboolean is_query;
 };
 
 static GstSingleQueue *gst_single_queue_new (GstMultiQueue * mqueue, guint id);
@@ -196,6 +198,8 @@
 static void single_queue_overrun_cb (GstDataQueue * dq, GstSingleQueue * sq);
 static void single_queue_underrun_cb (GstDataQueue * dq, GstSingleQueue * sq);
 
+static void gst_single_queue_flush_queue (GstSingleQueue * sq, gboolean full);
+
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink_%u",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
@@ -728,13 +732,11 @@
   }
 
   return result;
-
-
-
 }
 
 static gboolean
-gst_single_queue_flush (GstMultiQueue * mq, GstSingleQueue * sq, gboolean flush)
+gst_single_queue_flush (GstMultiQueue * mq, GstSingleQueue * sq, gboolean flush,
+    gboolean full)
 {
   gboolean result;
 
@@ -761,7 +763,7 @@
     sq->sink_tainted = sq->src_tainted = TRUE;
   } else {
     GST_MULTI_QUEUE_MUTEX_LOCK (mq);
-    gst_data_queue_flush (sq->queue);
+    gst_single_queue_flush_queue (sq, full);
     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 */
@@ -1113,7 +1115,7 @@
 static void
 gst_multi_queue_item_destroy (GstMultiQueueItem * item)
 {
-  if (item->object)
+  if (!item->is_query && item->object)
     gst_mini_object_unref (item->object);
   g_slice_free (GstMultiQueueItem, item);
 }
@@ -1128,6 +1130,7 @@
   item->object = object;
   item->destroy = (GDestroyNotify) gst_multi_queue_item_destroy;
   item->posid = curid;
+  item->is_query = GST_IS_QUERY (object);
 
   item->size = gst_buffer_get_size (GST_BUFFER_CAST (object));
   item->duration = GST_BUFFER_DURATION (object);
@@ -1146,6 +1149,7 @@
   item->object = object;
   item->destroy = (GDestroyNotify) gst_multi_queue_item_destroy;
   item->posid = curid;
+  item->is_query = GST_IS_QUERY (object);
 
   item->size = 0;
   item->duration = 0;
@@ -1362,6 +1366,8 @@
     compute_high_time (mq);
     compute_high_id (mq);
     wake_up_next_non_linked (mq);
+    sq->last_query = FALSE;
+    g_cond_signal (&sq->query_handled);
     GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
     /* upstream needs to see fatal result ASAP to shut things down,
@@ -1369,7 +1375,7 @@
      * so empty this one and trigger dynamic queue growth. At
      * this point the srcresult is not OK, NOT_LINKED
      * or EOS, i.e. a real failure */
-    gst_data_queue_flush (sq->queue);
+    gst_single_queue_flush_queue (sq, FALSE);
     single_queue_underrun_cb (sq->queue, sq);
     gst_data_queue_set_flushing (sq->queue, TRUE);
     gst_pad_pause_task (sq->srcpad);
@@ -1462,8 +1468,12 @@
         /* All pads start off linked until they push one buffer */
         sq->srcresult = GST_FLOW_OK;
         sq->pushed = FALSE;
+        gst_data_queue_set_flushing (sq->queue, FALSE);
       } else {
         sq->srcresult = GST_FLOW_FLUSHING;
+        sq->last_query = FALSE;
+        g_cond_signal (&sq->query_handled);
+        gst_data_queue_set_flushing (sq->queue, TRUE);
         gst_data_queue_flush (sq->queue);
       }
       res = TRUE;
@@ -1504,7 +1514,7 @@
 
       res = gst_pad_push_event (sq->srcpad, event);
 
-      gst_single_queue_flush (mq, sq, TRUE);
+      gst_single_queue_flush (mq, sq, TRUE, FALSE);
       goto done;
 
     case GST_EVENT_FLUSH_STOP:
@@ -1513,7 +1523,7 @@
 
       res = gst_pad_push_event (sq->srcpad, event);
 
-      gst_single_queue_flush (mq, sq, FALSE);
+      gst_single_queue_flush (mq, sq, FALSE, FALSE);
       goto done;
     case GST_EVENT_SEGMENT:
       /* take ref because the queue will take ownership and we need the event
@@ -1600,6 +1610,10 @@
         guint32 curid;
         GstMultiQueueItem *item;
 
+        GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+        if (sq->srcresult != GST_FLOW_OK)
+          goto out_flushing;
+
         /* Get an unique incrementing id. */
         curid = g_atomic_int_add ((gint *) & mq->counter, 1);
 
@@ -1608,8 +1622,6 @@
         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;
@@ -1621,6 +1633,13 @@
       break;
   }
   return res;
+
+out_flushing:
+  {
+    GST_DEBUG_OBJECT (mq, "Flushing");
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+    return FALSE;
+  }
 }
 
 static gboolean
@@ -1639,9 +1658,9 @@
   switch (mode) {
     case GST_PAD_MODE_PUSH:
       if (active) {
-        result = gst_single_queue_flush (mq, sq, FALSE);
+        result = gst_single_queue_flush (mq, sq, FALSE, TRUE);
       } else {
-        result = gst_single_queue_flush (mq, sq, TRUE);
+        result = gst_single_queue_flush (mq, sq, TRUE, TRUE);
         /* make sure streaming finishes */
         result |= gst_pad_stop_task (pad);
       }
@@ -1657,8 +1676,24 @@
 gst_multi_queue_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstSingleQueue *sq = gst_pad_get_element_private (pad);
+  GstMultiQueue *mq = sq->mqueue;
+  gboolean ret;
 
-  return gst_pad_push_event (sq->sinkpad, event);
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_RECONFIGURE:
+      GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+      if (sq->srcresult == GST_FLOW_NOT_LINKED)
+        sq->srcresult = GST_FLOW_OK;
+      GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+
+      ret = gst_pad_push_event (sq->sinkpad, event);
+      break;
+    default:
+      ret = gst_pad_push_event (sq->sinkpad, event);
+      break;
+  }
+
+  return ret;
 }
 
 static gboolean
@@ -1804,16 +1839,36 @@
   GstMultiQueue *mq = sq->mqueue;
   GList *tmp;
   GstDataQueueSize size;
-  gboolean filled = FALSE;
+  gboolean filled = TRUE;
 
   gst_data_queue_get_level (sq->queue, &size);
 
-  GST_LOG_OBJECT (mq, "Single Queue %d is full", sq->id);
+  GST_LOG_OBJECT (mq,
+      "Single Queue %d: EOS %d, visible %u/%u, bytes %u/%u, time %"
+      G_GUINT64_FORMAT "/%" G_GUINT64_FORMAT, sq->id, sq->is_eos, size.visible,
+      sq->max_size.visible, size.bytes, sq->max_size.bytes, sq->cur_time,
+      sq->max_size.time);
 
   GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+
+  /* check if we reached the hard time/bytes limits */
+  if (sq->is_eos || IS_FILLED (sq, bytes, size.bytes) ||
+      IS_FILLED (sq, time, sq->cur_time)) {
+    goto done;
+  }
+
+  /* if hard limits are not reached then we allow one more buffer in the full
+   * queue, but only if any of the other singelqueues are empty */
   for (tmp = mq->queues; tmp; tmp = g_list_next (tmp)) {
     GstSingleQueue *oq = (GstSingleQueue *) tmp->data;
-    GstDataQueueSize ssize;
+
+    if (oq == sq)
+      continue;
+
+    if (oq->srcresult == GST_FLOW_NOT_LINKED) {
+      GST_LOG_OBJECT (mq, "Queue %d is not-linked", oq->id);
+      continue;
+    }
 
     GST_LOG_OBJECT (mq, "Checking Queue %d", oq->id);
 
@@ -1822,43 +1877,22 @@
       if (IS_FILLED (sq, visible, size.visible)) {
         sq->max_size.visible = size.visible + 1;
         GST_DEBUG_OBJECT (mq,
-            "Another queue is empty, bumping single queue %d max visible to %d",
-            sq->id, sq->max_size.visible);
+            "Queue %d is empty, bumping single queue %d max visible to %d",
+            oq->id, sq->id, sq->max_size.visible);
+        filled = FALSE;
+        break;
       }
     }
-    /* check if we reached the hard time/bytes limits */
-    gst_data_queue_get_level (oq->queue, &ssize);
-
-    GST_DEBUG_OBJECT (mq,
-        "queue %d: visible %u/%u, bytes %u/%u, time %" G_GUINT64_FORMAT "/%"
-        G_GUINT64_FORMAT, oq->id, ssize.visible, oq->max_size.visible,
-        ssize.bytes, oq->max_size.bytes, oq->cur_time, oq->max_size.time);
-
-    /* if this queue is filled completely we must signal overrun.
-     * FIXME, this seems wrong in many ways
-     *  - we're comparing the filled level of this queue against the
-     *    values of the other one
-     *  - we should only do this after we found no empty queues, ie, move
-     *    this check outside of the loop
-     *  - the debug statement talks about a different queue than the one
-     *    we are checking here.
-     */
-    if (sq->is_eos || IS_FILLED (sq, bytes, ssize.bytes) ||
-        IS_FILLED (sq, time, sq->cur_time)) {
-      GST_LOG_OBJECT (mq, "Queue %d is filled EOS %d", sq->id, sq->is_eos);
-      filled = TRUE;
-    }
   }
-  /* no queues were empty */
+
+done:
   GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
   /* Overrun is always forwarded, since this is blocking the upstream element */
   if (filled) {
-    GST_DEBUG_OBJECT (mq, "A queue is filled, signalling overrun");
+    GST_DEBUG_OBJECT (mq, "Queue %d is filled, signalling overrun", sq->id);
     g_signal_emit (mq, gst_multi_queue_signals[SIGNAL_OVERRUN], 0);
   }
-
-  return;
 }
 
 static void
@@ -1868,8 +1902,13 @@
   GstMultiQueue *mq = sq->mqueue;
   GList *tmp;
 
-  GST_LOG_OBJECT (mq,
-      "Single Queue %d is empty, Checking other single queues", sq->id);
+  if (sq->srcresult == GST_FLOW_NOT_LINKED) {
+    GST_LOG_OBJECT (mq, "Single Queue %d is empty but not-linked", sq->id);
+    return;
+  } else {
+    GST_LOG_OBJECT (mq,
+        "Single Queue %d is empty, Checking other single queues", sq->id);
+  }
 
   GST_MULTI_QUEUE_MUTEX_LOCK (mq);
   for (tmp = mq->queues; tmp; tmp = g_list_next (tmp)) {
@@ -1925,6 +1964,45 @@
 }
 
 static void
+gst_single_queue_flush_queue (GstSingleQueue * sq, gboolean full)
+{
+  GstDataQueueItem *sitem;
+  GstMultiQueueItem *mitem;
+  gboolean was_flushing = FALSE;
+
+  while (!gst_data_queue_is_empty (sq->queue)) {
+    GstMiniObject *data;
+
+    /* FIXME: If this fails here although the queue is not empty,
+     * we're flushing... but we want to rescue all sticky
+     * events nonetheless.
+     */
+    if (!gst_data_queue_pop (sq->queue, &sitem)) {
+      was_flushing = TRUE;
+      gst_data_queue_set_flushing (sq->queue, FALSE);
+      continue;
+    }
+
+    mitem = (GstMultiQueueItem *) sitem;
+
+    data = sitem->object;
+
+    if (!full && !mitem->is_query && GST_IS_EVENT (data)
+        && GST_EVENT_IS_STICKY (data)
+        && GST_EVENT_TYPE (data) != GST_EVENT_SEGMENT
+        && GST_EVENT_TYPE (data) != GST_EVENT_EOS) {
+      gst_pad_store_sticky_event (sq->srcpad, GST_EVENT_CAST (data));
+    }
+
+    sitem->destroy (sitem);
+  }
+
+  gst_data_queue_flush (sq->queue);
+  if (was_flushing)
+    gst_data_queue_set_flushing (sq->queue, TRUE);
+}
+
+static void
 gst_single_queue_free (GstSingleQueue * sq)
 {
   /* DRAIN QUEUE */
@@ -1983,7 +2061,7 @@
   sq->mqueue = mqueue;
   sq->srcresult = GST_FLOW_FLUSHING;
   sq->pushed = FALSE;
-  sq->queue = gst_data_queue_new_full ((GstDataQueueCheckFullFunction)
+  sq->queue = gst_data_queue_new ((GstDataQueueCheckFullFunction)
       single_queue_check_full,
       (GstDataQueueFullCallback) single_queue_overrun_cb,
       (GstDataQueueEmptyCallback) single_queue_underrun_cb, sq);
diff --git a/plugins/elements/gstmultiqueue.h b/plugins/elements/gstmultiqueue.h
index 986dc22..adeeb18 100644
--- a/plugins/elements/gstmultiqueue.h
+++ b/plugins/elements/gstmultiqueue.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -24,7 +24,7 @@
 #define __GST_MULTI_QUEUE_H__
 
 #include <gst/gst.h>
-#include "gstdataqueue.h"
+#include <gst/base/gstdataqueue.h>
 
 G_BEGIN_DECLS
 
diff --git a/plugins/elements/gstoutputselector.c b/plugins/elements/gstoutputselector.c
index 545d068..fe5f99d 100644
--- a/plugins/elements/gstoutputselector.c
+++ b/plugins/elements/gstoutputselector.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -546,19 +546,19 @@
       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, parent, event);
-      break;
     default:
     {
-      /* 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);
+      if (GST_EVENT_IS_STICKY (event)) {
+        res = gst_pad_event_default (pad, parent, event);
       } else {
-        gst_event_unref (event);
+        /* 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);
+        } else {
+          gst_event_unref (event);
+        }
       }
       break;
     }
diff --git a/plugins/elements/gstoutputselector.h b/plugins/elements/gstoutputselector.h
index b2a4728..360e16e 100644
--- a/plugins/elements/gstoutputselector.h
+++ b/plugins/elements/gstoutputselector.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  
 #ifndef __GST_OUTPUT_SELECTOR_H__
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c
index 0cba033..a9e802c 100644
--- a/plugins/elements/gstqueue.c
+++ b/plugins/elements/gstqueue.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -92,7 +92,7 @@
                       queue->cur_level.time, \
                       queue->min_threshold.time, \
                       queue->max_size.time, \
-                      queue->queue.length)
+                      gst_queue_array_get_length (queue->queue))
 
 /* Queue signals and args */
 enum
@@ -119,7 +119,8 @@
   PROP_MIN_THRESHOLD_BYTES,
   PROP_MIN_THRESHOLD_TIME,
   PROP_LEAKY,
-  PROP_SILENT
+  PROP_SILENT,
+  PROP_FLUSH_ON_EOS
 };
 
 /* default property values */
@@ -208,7 +209,7 @@
 static gboolean gst_queue_handle_src_query (GstPad * pad, GstObject * parent,
     GstQuery * query);
 
-static void gst_queue_locked_flush (GstQueue * queue);
+static void gst_queue_locked_flush (GstQueue * queue, gboolean full);
 
 static gboolean gst_queue_src_activate_mode (GstPad * pad, GstObject * parent,
     GstPadMode mode, gboolean active);
@@ -218,6 +219,13 @@
 static gboolean gst_queue_is_empty (GstQueue * queue);
 static gboolean gst_queue_is_filled (GstQueue * queue);
 
+
+typedef struct
+{
+  gboolean is_query;
+  GstMiniObject *item;
+} GstQueueItem;
+
 #define GST_TYPE_QUEUE_LEAKY (queue_leaky_get_type ())
 
 static GType
@@ -359,6 +367,26 @@
           "Don't emit queue signals", FALSE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstQueue:flush-on-eos
+   *
+   * Discard all data in the queue when an EOS event is received, and pass
+   * on the EOS event as soon as possible (instead of waiting until all
+   * buffers in the queue have been processed, which is the default behaviour).
+   *
+   * Flushing the queue on EOS might be useful when capturing and encoding
+   * from a live source, to finish up the recording quickly in cases when
+   * the encoder is slow. Note that this might mean some data from the end of
+   * the recoding data might be lost though (never more than the configured
+   * max. sizes though).
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_FLUSH_ON_EOS,
+      g_param_spec_boolean ("flush-on-eos", "Flush on EOS",
+          "Discard all data in the queue when an EOS event is received", FALSE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gobject_class->finalize = gst_queue_finalize;
 
   gst_element_class_set_static_metadata (gstelement_class,
@@ -416,8 +444,9 @@
   g_mutex_init (&queue->qlock);
   g_cond_init (&queue->item_add);
   g_cond_init (&queue->item_del);
+  g_cond_init (&queue->query_handled);
 
-  gst_queue_array_init (&queue->queue, DEFAULT_MAX_SIZE_BUFFERS * 3 / 2);
+  queue->queue = gst_queue_array_new (DEFAULT_MAX_SIZE_BUFFERS * 3 / 2);
 
   queue->sinktime = GST_CLOCK_TIME_NONE;
   queue->srctime = GST_CLOCK_TIME_NONE;
@@ -435,22 +464,23 @@
 static void
 gst_queue_finalize (GObject * object)
 {
-  GstMiniObject *data;
   GstQueue *queue = GST_QUEUE (object);
 
   GST_DEBUG_OBJECT (queue, "finalizing queue");
 
-  while (!gst_queue_array_is_empty (&queue->queue)) {
-    data = gst_queue_array_pop_head (&queue->queue);
+  while (!gst_queue_array_is_empty (queue->queue)) {
+    GstQueueItem *qitem = gst_queue_array_pop_head (queue->queue);
     /* FIXME: if it's a query, shouldn't we unref that too? */
-    if (!GST_IS_QUERY (data))
-      gst_mini_object_unref (data);
+    if (!qitem->is_query)
+      gst_mini_object_unref (qitem->item);
+    g_slice_free (GstQueueItem, qitem);
   }
-  gst_queue_array_clear (&queue->queue);
+  gst_queue_array_free (queue->queue);
 
   g_mutex_clear (&queue->qlock);
   g_cond_clear (&queue->item_add);
   g_cond_clear (&queue->item_del);
+  g_cond_clear (&queue->query_handled);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -552,17 +582,25 @@
 }
 
 static void
-gst_queue_locked_flush (GstQueue * queue)
+gst_queue_locked_flush (GstQueue * queue, gboolean full)
 {
-  GstMiniObject *data;
+  while (!gst_queue_array_is_empty (queue->queue)) {
+    GstQueueItem *qitem = gst_queue_array_pop_head (queue->queue);
 
-  while (!gst_queue_array_is_empty (&queue->queue)) {
-    data = gst_queue_array_pop_head (&queue->queue);
     /* Then lose another reference because we are supposed to destroy that
        data when flushing */
-    if (!GST_IS_QUERY (data))
-      gst_mini_object_unref (data);
+    if (!full && !qitem->is_query && GST_IS_EVENT (qitem->item)
+        && GST_EVENT_IS_STICKY (qitem->item)
+        && GST_EVENT_TYPE (qitem->item) != GST_EVENT_SEGMENT
+        && GST_EVENT_TYPE (qitem->item) != GST_EVENT_EOS) {
+      gst_pad_store_sticky_event (queue->srcpad, GST_EVENT_CAST (qitem->item));
+    }
+    if (!qitem->is_query)
+      gst_mini_object_unref (qitem->item);
+    g_slice_free (GstQueueItem, qitem);
   }
+  queue->last_query = FALSE;
+  g_cond_signal (&queue->query_handled);
   GST_QUEUE_CLEAR_LEVEL (queue->cur_level);
   queue->min_threshold.buffers = queue->orig_min_threshold.buffers;
   queue->min_threshold.bytes = queue->orig_min_threshold.bytes;
@@ -589,8 +627,12 @@
   queue->cur_level.bytes += gst_buffer_get_size (buffer);
   apply_buffer (queue, buffer, &queue->sink_segment, TRUE, TRUE);
 
-  if (item)
-    gst_queue_array_push_tail (&queue->queue, item);
+  if (item) {
+    GstQueueItem *qitem = g_slice_new (GstQueueItem);
+    qitem->item = item;
+    qitem->is_query = FALSE;
+    gst_queue_array_push_tail (queue->queue, qitem);
+  }
   GST_QUEUE_SIGNAL_ADD (queue);
 }
 
@@ -601,17 +643,20 @@
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_EOS:
+      GST_CAT_LOG_OBJECT (queue_dataflow, queue, "got EOS from upstream");
       /* Zero the thresholds, this makes sure the queue is completely
        * filled and we can read all data from the queue. */
-      GST_QUEUE_CLEAR_LEVEL (queue->min_threshold);
+      if (queue->flush_on_eos)
+        gst_queue_locked_flush (queue, FALSE);
+      else
+        GST_QUEUE_CLEAR_LEVEL (queue->min_threshold);
       /* mark the queue as EOS. This prevents us from accepting more data. */
-      GST_CAT_LOG_OBJECT (queue_dataflow, queue, "got EOS from upstream");
       queue->eos = TRUE;
       break;
     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 (gst_queue_array_is_empty (queue->queue)) {
         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;
@@ -624,8 +669,12 @@
       break;
   }
 
-  if (item)
-    gst_queue_array_push_tail (&queue->queue, item);
+  if (item) {
+    GstQueueItem *qitem = g_slice_new (GstQueueItem);
+    qitem->item = item;
+    qitem->is_query = FALSE;
+    gst_queue_array_push_tail (queue->queue, qitem);
+  }
   GST_QUEUE_SIGNAL_ADD (queue);
 }
 
@@ -633,12 +682,16 @@
 static GstMiniObject *
 gst_queue_locked_dequeue (GstQueue * queue)
 {
+  GstQueueItem *qitem;
   GstMiniObject *item;
 
-  item = gst_queue_array_pop_head (&queue->queue);
-  if (item == NULL)
+  qitem = gst_queue_array_pop_head (queue->queue);
+  if (qitem == NULL)
     goto no_item;
 
+  item = qitem->item;
+  g_slice_free (GstQueueItem, qitem);
+
   if (GST_IS_BUFFER (item)) {
     GstBuffer *buffer = GST_BUFFER_CAST (item);
 
@@ -718,6 +771,8 @@
       /* unblock the loop and chain functions */
       GST_QUEUE_SIGNAL_ADD (queue);
       GST_QUEUE_SIGNAL_DEL (queue);
+      queue->last_query = FALSE;
+      g_cond_signal (&queue->query_handled);
       GST_QUEUE_MUTEX_UNLOCK (queue);
 
       /* make sure it pauses, this should happen since we sent
@@ -733,7 +788,7 @@
       gst_pad_push_event (queue->srcpad, event);
 
       GST_QUEUE_MUTEX_LOCK (queue);
-      gst_queue_locked_flush (queue);
+      gst_queue_locked_flush (queue, FALSE);
       queue->srcresult = GST_FLOW_OK;
       queue->eos = FALSE;
       queue->unexpected = FALSE;
@@ -747,14 +802,24 @@
     default:
       if (GST_EVENT_IS_SERIALIZED (event)) {
         /* serialized events go in the queue */
-        GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
+        GST_QUEUE_MUTEX_LOCK (queue);
+        if (queue->srcresult != GST_FLOW_OK) {
+          /* Errors in sticky event pushing are no problem and ignored here
+           * as they will cause more meaningful errors during data flow.
+           * For EOS events, that are not followed by data flow, we still
+           * return FALSE here though.
+           */
+          if (!GST_EVENT_IS_STICKY (event) ||
+              GST_EVENT_TYPE (event) == GST_EVENT_EOS)
+            goto out_flow_error;
+        }
         /* refuse more events on EOS */
         if (queue->eos)
           goto out_eos;
         gst_queue_locked_enqueue_event (queue, event);
         GST_QUEUE_MUTEX_UNLOCK (queue);
       } else {
-        /* non-serialized events are passed upstream. */
+        /* non-serialized events are forwarded downstream immediately */
         gst_pad_push_event (queue->srcpad, event);
       }
       break;
@@ -763,17 +828,18 @@
   return TRUE;
 
   /* ERRORS */
-out_flushing:
+out_eos:
   {
-    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-        "refusing event, we are flushing");
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue, "refusing event, we are EOS");
     GST_QUEUE_MUTEX_UNLOCK (queue);
     gst_event_unref (event);
     return FALSE;
   }
-out_eos:
+out_flow_error:
   {
-    GST_CAT_LOG_OBJECT (queue_dataflow, queue, "refusing event, we are EOS");
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+        "refusing event, we have a downstream flow error: %s",
+        gst_flow_get_name (queue->srcresult));
     GST_QUEUE_MUTEX_UNLOCK (queue);
     gst_event_unref (event);
     return FALSE;
@@ -789,16 +855,19 @@
   switch (GST_QUERY_TYPE (query)) {
     default:
       if (G_UNLIKELY (GST_QUERY_IS_SERIALIZED (query))) {
+        GstQueueItem *qitem;
+
         GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
         GST_LOG_OBJECT (queue, "queuing query %p (%s)", query,
             GST_QUERY_TYPE_NAME (query));
-        gst_queue_array_push_tail (&queue->queue, query);
+        qitem = g_slice_new (GstQueueItem);
+        qitem->item = GST_MINI_OBJECT_CAST (query);
+        qitem->is_query = TRUE;
+        gst_queue_array_push_tail (queue->queue, qitem);
         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);
-        }
+        g_cond_wait (&queue->query_handled, &queue->qlock);
+        if (queue->srcresult != GST_FLOW_OK)
+          goto out_flushing;
         res = queue->last_query;
         GST_QUEUE_MUTEX_UNLOCK (queue);
       } else {
@@ -811,16 +880,7 @@
   /* ERRORS */
 out_flushing:
   {
-    gint index;
-
     GST_DEBUG_OBJECT (queue, "we are flushing");
-
-    /* Remove query from queue if still there, since we hold no ref to it */
-    index = gst_queue_array_find (&queue->queue, NULL, query);
-
-    if (index >= 0)
-      gst_queue_array_drop_element (&queue->queue, index);
-
     GST_QUEUE_MUTEX_UNLOCK (queue);
     return FALSE;
   }
@@ -829,17 +889,17 @@
 static gboolean
 gst_queue_is_empty (GstQueue * queue)
 {
-  GstMiniObject *head;
+  GstQueueItem *head;
 
-  if (queue->queue.length == 0)
+  if (gst_queue_array_is_empty (queue->queue))
     return TRUE;
 
   /* Only consider the queue empty if the minimum thresholds
    * are not reached and data is at the queue head. Otherwise
    * we would block forever on serialized queries.
    */
-  head = queue->queue.array[queue->queue.head];
-  if (!GST_IS_BUFFER (head) && !GST_IS_BUFFER_LIST (head))
+  head = gst_queue_array_peek_head (queue->queue);
+  if (!GST_IS_BUFFER (head->item) && !GST_IS_BUFFER_LIST (head->item))
     return FALSE;
 
   /* It is possible that a max size is reached before all min thresholds are.
@@ -878,6 +938,12 @@
 
     GST_CAT_DEBUG_OBJECT (queue_dataflow, queue,
         "queue is full, leaking item %p on downstream end", leak);
+    if (GST_IS_EVENT (leak) && GST_EVENT_IS_STICKY (leak)) {
+      GST_CAT_DEBUG_OBJECT (queue_dataflow, queue,
+          "Storing sticky event %s on srcpad", GST_EVENT_TYPE_NAME (leak));
+      gst_pad_store_sticky_event (queue->srcpad, GST_EVENT_CAST (leak));
+    }
+
     if (!GST_IS_QUERY (leak))
       gst_mini_object_unref (leak);
 
@@ -1087,6 +1153,7 @@
           GST_CAT_LOG_OBJECT (queue_dataflow, queue,
               "dropping query %p because of EOS", query);
           queue->last_query = FALSE;
+          g_cond_signal (&queue->query_handled);
         }
       }
       /* no more items in the queue. Set the unexpected flag so that upstream
@@ -1113,8 +1180,13 @@
     }
   } else if (GST_IS_QUERY (data)) {
     GstQuery *query = GST_QUERY_CAST (data);
+    gboolean ret;
 
-    queue->last_query = gst_pad_peer_query (queue->srcpad, query);
+    GST_QUEUE_MUTEX_UNLOCK (queue);
+    ret = gst_pad_peer_query (queue->srcpad, query);
+    GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing_query);
+    queue->last_query = ret;
+    g_cond_signal (&queue->query_handled);
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "did query %p, return %d", query, queue->last_query);
   }
@@ -1132,6 +1204,13 @@
     GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are flushing");
     return GST_FLOW_FLUSHING;
   }
+out_flushing_query:
+  {
+    queue->last_query = FALSE;
+    g_cond_signal (&queue->query_handled);
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are flushing");
+    return GST_FLOW_FLUSHING;
+  }
 }
 
 static void
@@ -1186,7 +1265,7 @@
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "pause task, reason:  %s", gst_flow_get_name (ret));
     if (ret == GST_FLOW_FLUSHING)
-      gst_queue_locked_flush (queue);
+      gst_queue_locked_flush (queue, FALSE);
     else
       GST_QUEUE_SIGNAL_DEL (queue);
     GST_QUEUE_MUTEX_UNLOCK (queue);
@@ -1214,7 +1293,24 @@
       event, GST_EVENT_TYPE (event));
 #endif
 
-  res = gst_pad_push_event (queue->sinkpad, event);
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_RECONFIGURE:
+      GST_QUEUE_MUTEX_LOCK (queue);
+      if (queue->srcresult == GST_FLOW_NOT_LINKED) {
+        /* when we got not linked, assume downstream is linked again now and we
+         * can try to start pushing again */
+        queue->srcresult = GST_FLOW_OK;
+        gst_pad_start_task (pad, (GstTaskFunction) gst_queue_loop, pad, NULL);
+      }
+      GST_QUEUE_MUTEX_UNLOCK (queue);
+
+      res = gst_pad_push_event (queue->sinkpad, event);
+      break;
+    default:
+      res = gst_pad_event_default (pad, parent, event);
+      break;
+  }
+
 
   return res;
 }
@@ -1318,7 +1414,7 @@
         /* step 1, unblock chain function */
         GST_QUEUE_MUTEX_LOCK (queue);
         queue->srcresult = GST_FLOW_FLUSHING;
-        gst_queue_locked_flush (queue);
+        gst_queue_locked_flush (queue, TRUE);
         GST_QUEUE_MUTEX_UNLOCK (queue);
       }
       result = TRUE;
@@ -1433,6 +1529,9 @@
     case PROP_SILENT:
       queue->silent = g_value_get_boolean (value);
       break;
+    case PROP_FLUSH_ON_EOS:
+      queue->flush_on_eos = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1483,6 +1582,9 @@
     case PROP_SILENT:
       g_value_set_boolean (value, queue->silent);
       break;
+    case PROP_FLUSH_ON_EOS:
+      g_value_set_boolean (value, queue->flush_on_eos);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/plugins/elements/gstqueue.h b/plugins/elements/gstqueue.h
index 1ed123e..5134578 100644
--- a/plugins/elements/gstqueue.h
+++ b/plugins/elements/gstqueue.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -25,7 +25,7 @@
 #define __GST_QUEUE_H__
 
 #include <gst/gst.h>
-#include "gstqueuearray.h"
+#include <gst/base/gstqueuearray.h>
 
 G_BEGIN_DECLS
 
@@ -108,7 +108,7 @@
   gboolean      eos;
 
   /* the queue of data we're keeping our grubby hands on */
-  GstQueueArray queue;
+  GstQueueArray *queue;
 
   GstQueueSize
     cur_level,          /* currently in the queue */
@@ -133,7 +133,10 @@
   /* whether the first new segment has been applied to src */
   gboolean newseg_applied_to_src;
 
+  GCond query_handled;
   gboolean last_query;
+
+  gboolean flush_on_eos; /* flush on EOS */
 };
 
 struct _GstQueueClass {
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index 3f12939..59d8b63 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -261,9 +261,16 @@
   GST_QUEUE2_ITEM_TYPE_UNKNOWN = 0,
   GST_QUEUE2_ITEM_TYPE_BUFFER,
   GST_QUEUE2_ITEM_TYPE_BUFFER_LIST,
-  GST_QUEUE2_ITEM_TYPE_EVENT
+  GST_QUEUE2_ITEM_TYPE_EVENT,
+  GST_QUEUE2_ITEM_TYPE_QUERY
 } GstQueue2ItemType;
 
+typedef struct
+{
+  GstQueue2ItemType type;
+  GstMiniObject *item;
+} GstQueue2Item;
+
 /* static guint gst_queue2_signals[LAST_SIGNAL] = { 0 }; */
 
 static void
@@ -440,6 +447,9 @@
   g_cond_init (&queue->item_del);
   g_queue_init (&queue->queue);
 
+  g_cond_init (&queue->query_handled);
+  queue->last_query = FALSE;
+
   queue->buffering_percent = 100;
 
   /* tempfile related */
@@ -463,15 +473,19 @@
   GST_DEBUG_OBJECT (queue, "finalizing queue");
 
   while (!g_queue_is_empty (&queue->queue)) {
-    GstMiniObject *data = g_queue_pop_head (&queue->queue);
+    GstQueue2Item *qitem = g_queue_pop_head (&queue->queue);
 
-    gst_mini_object_unref (data);
+    if (qitem->type != GST_QUEUE2_ITEM_TYPE_QUERY)
+      gst_mini_object_unref (qitem->item);
+    g_slice_free (GstQueue2Item, qitem);
   }
 
+  queue->last_query = FALSE;
   g_queue_clear (&queue->queue);
   g_mutex_clear (&queue->qlock);
   g_cond_clear (&queue->item_add);
   g_cond_clear (&queue->item_del);
+  g_cond_clear (&queue->query_handled);
   g_timer_destroy (queue->in_timer);
   g_timer_destroy (queue->out_timer);
 
@@ -765,102 +779,142 @@
   update_time_level (queue);
 }
 
-static void
-update_buffering (GstQueue2 * queue)
+static gboolean
+get_buffering_percent (GstQueue2 * queue, gboolean * is_buffering,
+    gint * percent)
 {
-  gint64 percent;
   gboolean post = FALSE;
+  gint perc;
 
-  if (queue->high_percent <= 0)
-    return;
-
+  if (queue->high_percent <= 0) {
+    if (percent)
+      *percent = 100;
+    if (is_buffering)
+      *is_buffering = FALSE;
+    return FALSE;
+  }
 #define GET_PERCENT(format,alt_max) ((queue->max_level.format) > 0 ? (queue->cur_level.format) * 100 / ((alt_max) > 0 ? MIN ((alt_max), (queue->max_level.format)) : (queue->max_level.format)) : 0)
 
   if (queue->is_eos) {
     /* on EOS we are always 100% full, we set the var here so that it we can
      * reuse the logic below to stop buffering */
-    percent = 100;
+    perc = 100;
     GST_LOG_OBJECT (queue, "we are EOS");
   } else {
     /* figure out the percent we are filled, we take the max of all formats. */
     if (!QUEUE_IS_USING_RING_BUFFER (queue)) {
-      percent = GET_PERCENT (bytes, 0);
+      perc = GET_PERCENT (bytes, 0);
     } else {
       guint64 rb_size = queue->ring_buffer_max_size;
-      percent = GET_PERCENT (bytes, rb_size);
+      perc = GET_PERCENT (bytes, rb_size);
     }
-    percent = MAX (percent, GET_PERCENT (time, 0));
-    percent = MAX (percent, GET_PERCENT (buffers, 0));
+    perc = MAX (perc, GET_PERCENT (time, 0));
+    perc = MAX (perc, GET_PERCENT (buffers, 0));
 
     /* also apply the rate estimate when we need to */
     if (queue->use_rate_estimate)
-      percent = MAX (percent, GET_PERCENT (rate_time, 0));
+      perc = MAX (perc, GET_PERCENT (rate_time, 0));
   }
+#undef GET_PERCENT
 
   if (queue->is_buffering) {
     post = TRUE;
     /* if we were buffering see if we reached the high watermark */
-    if (percent >= queue->high_percent)
+    if (perc >= queue->high_percent)
       queue->is_buffering = FALSE;
   } else {
     /* we were not buffering, check if we need to start buffering if we drop
      * below the low threshold */
-    if (percent < queue->low_percent) {
+    if (perc < queue->low_percent) {
       queue->is_buffering = TRUE;
       queue->buffering_iteration++;
       post = TRUE;
     }
   }
+
+  if (is_buffering)
+    *is_buffering = queue->is_buffering;
+
+  /* scale to high percent so that it becomes the 100% mark */
+  perc = perc * 100 / queue->high_percent;
+  /* clip */
+  if (perc > 100)
+    perc = 100;
+
   if (post) {
-    GstMessage *message;
+    if (perc == queue->buffering_percent)
+      post = FALSE;
+    else
+      queue->buffering_percent = perc;
+  }
+  if (percent)
+    *percent = perc;
 
-    /* scale to high percent so that it becomes the 100% mark */
-    percent = percent * 100 / queue->high_percent;
-    /* clip */
-    if (percent > 100)
-      percent = 100;
+  GST_DEBUG_OBJECT (queue, "buffering %d, percent %d", queue->is_buffering,
+      perc);
 
+  return post;
+}
 
-    if (percent != queue->buffering_percent) {
-      GstBufferingMode mode;
-      gint64 buffering_left;
-
-      buffering_left = (percent == 100 ? 0 : -1);
-
-      queue->buffering_percent = percent;
-
-      if (!QUEUE_IS_USING_QUEUE (queue)) {
-        if (QUEUE_IS_USING_RING_BUFFER (queue))
-          mode = GST_BUFFERING_TIMESHIFT;
-        else
-          mode = GST_BUFFERING_DOWNLOAD;
-      } else {
-        mode = GST_BUFFERING_STREAM;
-      }
-
-      if (queue->use_rate_estimate) {
-        guint64 max, cur;
-
-        max = queue->max_level.rate_time;
-        cur = queue->cur_level.rate_time;
-
-        if (percent != 100 && max > cur)
-          buffering_left = (max - cur) / 1000000;
-      }
-
-      GST_DEBUG_OBJECT (queue, "buffering %d percent", (gint) percent);
-      message = gst_message_new_buffering (GST_OBJECT_CAST (queue),
-          (gint) percent);
-      gst_message_set_buffering_stats (message, mode,
-          queue->byte_in_rate, queue->byte_out_rate, buffering_left);
-
-      gst_element_post_message (GST_ELEMENT_CAST (queue), message);
+static void
+get_buffering_stats (GstQueue2 * queue, gint percent, GstBufferingMode * mode,
+    gint * avg_in, gint * avg_out, gint64 * buffering_left)
+{
+  if (mode) {
+    if (!QUEUE_IS_USING_QUEUE (queue)) {
+      if (QUEUE_IS_USING_RING_BUFFER (queue))
+        *mode = GST_BUFFERING_TIMESHIFT;
+      else
+        *mode = GST_BUFFERING_DOWNLOAD;
+    } else {
+      *mode = GST_BUFFERING_STREAM;
     }
-  } else {
-    GST_DEBUG_OBJECT (queue, "filled %d percent", (gint) percent);
   }
 
-#undef GET_PERCENT
+  if (avg_in)
+    *avg_in = queue->byte_in_rate;
+  if (avg_out)
+    *avg_out = queue->byte_out_rate;
+
+  if (buffering_left) {
+    *buffering_left = (percent == 100 ? 0 : -1);
+
+    if (queue->use_rate_estimate) {
+      guint64 max, cur;
+
+      max = queue->max_level.rate_time;
+      cur = queue->cur_level.rate_time;
+
+      if (percent != 100 && max > cur)
+        *buffering_left = (max - cur) / 1000000;
+    }
+  }
+}
+
+static void
+update_buffering (GstQueue2 * queue)
+{
+  gint percent;
+  gboolean post = FALSE;
+
+  post = get_buffering_percent (queue, NULL, &percent);
+
+  if (post) {
+    GstMessage *message;
+    GstBufferingMode mode;
+    gint avg_in, avg_out;
+    gint64 buffering_left;
+
+    get_buffering_stats (queue, percent, &mode, &avg_in, &avg_out,
+        &buffering_left);
+
+    message = gst_message_new_buffering (GST_OBJECT_CAST (queue),
+        (gint) percent);
+    gst_message_set_buffering_stats (message, mode,
+        avg_in, avg_out, buffering_left);
+
+    gst_element_post_message (GST_ELEMENT_CAST (queue), message);
+  }
 }
 
 static void
@@ -1473,7 +1527,7 @@
 }
 
 static void
-gst_queue2_locked_flush (GstQueue2 * queue)
+gst_queue2_locked_flush (GstQueue2 * queue, gboolean full)
 {
   if (!QUEUE_IS_USING_QUEUE (queue)) {
     if (QUEUE_IS_USING_TEMP_FILE (queue))
@@ -1481,13 +1535,25 @@
     init_ranges (queue);
   } else {
     while (!g_queue_is_empty (&queue->queue)) {
-      GstMiniObject *data = g_queue_pop_head (&queue->queue);
+      GstQueue2Item *qitem = g_queue_pop_head (&queue->queue);
+
+      if (!full && qitem->type == GST_QUEUE2_ITEM_TYPE_EVENT
+          && GST_EVENT_IS_STICKY (qitem->item)
+          && GST_EVENT_TYPE (qitem->item) != GST_EVENT_SEGMENT
+          && GST_EVENT_TYPE (qitem->item) != GST_EVENT_EOS) {
+        gst_pad_store_sticky_event (queue->srcpad,
+            GST_EVENT_CAST (qitem->item));
+      }
 
       /* Then lose another reference because we are supposed to destroy that
          data when flushing */
-      gst_mini_object_unref (data);
+      if (qitem->type != GST_QUEUE2_ITEM_TYPE_QUERY)
+        gst_mini_object_unref (qitem->item);
+      g_slice_free (GstQueue2Item, qitem);
     }
   }
+  queue->last_query = FALSE;
+  g_cond_signal (&queue->query_handled);
   GST_QUEUE2_CLEAR_LEVEL (queue->cur_level);
   gst_segment_init (&queue->sink_segment, GST_FORMAT_TIME);
   gst_segment_init (&queue->src_segment, GST_FORMAT_TIME);
@@ -1961,6 +2027,10 @@
           goto unexpected_event;
         break;
     }
+  } else if (GST_IS_QUERY (item)) {
+    /* Can't happen as we check that in the caller */
+    if (!QUEUE_IS_USING_QUEUE (queue))
+      g_assert_not_reached ();
   } else {
     g_warning ("Unexpected item %p added in queue %s (refcounting problem?)",
         item, GST_OBJECT_NAME (queue));
@@ -1974,7 +2044,10 @@
       update_buffering (queue);
 
     if (QUEUE_IS_USING_QUEUE (queue)) {
-      g_queue_push_tail (&queue->queue, item);
+      GstQueue2Item *qitem = g_slice_new (GstQueue2Item);
+      qitem->type = item_type;
+      qitem->item = item;
+      g_queue_push_tail (&queue->queue, qitem);
     } else {
       gst_mini_object_unref (GST_MINI_OBJECT_CAST (item));
     }
@@ -2002,10 +2075,13 @@
 {
   GstMiniObject *item;
 
-  if (!QUEUE_IS_USING_QUEUE (queue))
+  if (!QUEUE_IS_USING_QUEUE (queue)) {
     item = gst_queue2_read_item_from_file (queue);
-  else
-    item = g_queue_pop_head (&queue->queue);
+  } else {
+    GstQueue2Item *qitem = g_queue_pop_head (&queue->queue);
+    item = qitem->item;
+    g_slice_free (GstQueue2Item, qitem);
+  }
 
   if (item == NULL)
     goto no_item;
@@ -2076,7 +2152,10 @@
     /* update the buffering */
     if (queue->use_buffering)
       update_buffering (queue);
-
+  } else if (GST_IS_QUERY (item)) {
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+        "retrieved query %p from queue", item);
+    *item_type = GST_QUEUE2_ITEM_TYPE_QUERY;
   } else {
     g_warning
         ("Unexpected item %p dequeued from queue %s (refcounting problem?)",
@@ -2119,6 +2198,8 @@
         /* unblock the loop and chain functions */
         GST_QUEUE2_SIGNAL_ADD (queue);
         GST_QUEUE2_SIGNAL_DEL (queue);
+        queue->last_query = FALSE;
+        g_cond_signal (&queue->query_handled);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
 
         /* make sure it pauses, this should happen since we sent
@@ -2130,6 +2211,8 @@
         /* flush the sink pad */
         queue->sinkresult = GST_FLOW_FLUSHING;
         GST_QUEUE2_SIGNAL_DEL (queue);
+        queue->last_query = FALSE;
+        g_cond_signal (&queue->query_handled);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
 
         gst_event_unref (event);
@@ -2145,7 +2228,7 @@
         gst_pad_push_event (queue->srcpad, event);
 
         GST_QUEUE2_MUTEX_LOCK (queue);
-        gst_queue2_locked_flush (queue);
+        gst_queue2_locked_flush (queue, FALSE);
         queue->srcresult = GST_FLOW_OK;
         queue->sinkresult = GST_FLOW_OK;
         queue->is_eos = FALSE;
@@ -2208,19 +2291,52 @@
 gst_queue2_handle_sink_query (GstPad * pad, GstObject * parent,
     GstQuery * query)
 {
+  GstQueue2 *queue;
   gboolean res;
 
+  queue = GST_QUEUE2 (parent);
+
   switch (GST_QUERY_TYPE (query)) {
     default:
       if (GST_QUERY_IS_SERIALIZED (query)) {
-        GST_WARNING_OBJECT (pad, "unhandled serialized query");
-        res = FALSE;
+        GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received query %p", query);
+        /* serialized events go in the queue. We need to be certain that we
+         * don't cause deadlocks waiting for the query return value. We check if
+         * the queue is empty (nothing is blocking downstream and the query can
+         * be pushed for sure) or we are not buffering. If we are buffering,
+         * the pipeline waits to unblock downstream until our queue fills up
+         * completely, which can not happen if we block on the query..
+         * Therefore we only potentially block when we are not buffering. */
+        GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->sinkresult, out_flushing);
+        if (QUEUE_IS_USING_QUEUE (queue) && (gst_queue2_is_empty (queue)
+                || !queue->use_buffering)) {
+          gst_queue2_locked_enqueue (queue, query, GST_QUEUE2_ITEM_TYPE_QUERY);
+
+          STATUS (queue, queue->sinkpad, "wait for QUERY");
+          g_cond_wait (&queue->query_handled, &queue->qlock);
+          if (queue->sinkresult != GST_FLOW_OK)
+            goto out_flushing;
+          res = queue->last_query;
+        } else {
+          GST_DEBUG_OBJECT (queue,
+              "refusing query, we are not using the queue");
+          res = FALSE;
+        }
+        GST_QUEUE2_MUTEX_UNLOCK (queue);
       } else {
         res = gst_pad_query_default (pad, parent, query);
       }
       break;
   }
   return res;
+
+  /* ERRORS */
+out_flushing:
+  {
+    GST_DEBUG_OBJECT (queue, "refusing query, we are flushing");
+    GST_QUEUE2_MUTEX_UNLOCK (queue);
+    return FALSE;
+  }
 }
 
 static gboolean
@@ -2414,6 +2530,10 @@
       GST_CAT_LOG_OBJECT (queue_dataflow, queue,
           "dropping EOS buffer list %p", data);
       gst_buffer_list_unref (GST_BUFFER_LIST_CAST (data));
+    } else if (*item_type == GST_QUEUE2_ITEM_TYPE_QUERY) {
+      queue->last_query = FALSE;
+      g_cond_signal (&queue->query_handled);
+      GST_CAT_LOG_OBJECT (queue_dataflow, queue, "dropping EOS query %p", data);
     }
   }
   /* no more items in the queue. Set the unexpected flag so that upstream
@@ -2488,6 +2608,15 @@
        * to the caller so that the task function does not shut down */
       result = GST_FLOW_OK;
     }
+  } else if (item_type == GST_QUEUE2_ITEM_TYPE_QUERY) {
+    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);
+    g_cond_signal (&queue->query_handled);
+    GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
+    result = GST_FLOW_OK;
   }
   return result;
 
@@ -2615,6 +2744,21 @@
         gst_event_unref (event);
       }
       break;
+    case GST_EVENT_RECONFIGURE:
+      GST_QUEUE2_MUTEX_LOCK (queue);
+      /* assume downstream is linked now and try to push again */
+      if (queue->srcresult == GST_FLOW_NOT_LINKED) {
+        queue->srcresult = GST_FLOW_OK;
+        queue->sinkresult = GST_FLOW_OK;
+        if (GST_PAD_MODE (pad) == GST_PAD_MODE_PUSH) {
+          gst_pad_start_task (pad, (GstTaskFunction) gst_queue2_loop, pad,
+              NULL);
+        }
+      }
+      GST_QUEUE2_MUTEX_UNLOCK (queue);
+
+      res = gst_pad_push_event (queue->sinkpad, event);
+      break;
     default:
       res = gst_pad_push_event (queue->sinkpad, event);
       break;
@@ -2671,24 +2815,30 @@
     }
     case GST_QUERY_BUFFERING:
     {
-      GstFormat format;
+      gint percent;
+      gboolean is_buffering;
+      GstBufferingMode mode;
+      gint avg_in, avg_out;
+      gint64 buffering_left;
 
       GST_DEBUG_OBJECT (queue, "query buffering");
 
-      /* 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_pad_peer_query (queue->sinkpad, query))
-          goto peer_failed;
-        GST_DEBUG_OBJECT (queue, "buffering forwarded to peer");
-      } else {
+      get_buffering_percent (queue, &is_buffering, &percent);
+      gst_query_set_buffering_percent (query, is_buffering, percent);
+
+      get_buffering_stats (queue, percent, &mode, &avg_in, &avg_out,
+          &buffering_left);
+      gst_query_set_buffering_stats (query, mode, avg_in, avg_out,
+          buffering_left);
+
+      if (!QUEUE_IS_USING_QUEUE (queue)) {
+        /* add ranges for download and ringbuffer buffering */
+        GstFormat format;
         gint64 start, stop, range_start, range_stop;
         guint64 writing_pos;
-        gint percent;
-        gint64 estimated_total, buffering_left;
+        gint64 estimated_total;
         gint64 duration;
-        gboolean peer_res, is_buffering, is_eos;
-        gdouble byte_in_rate, byte_out_rate;
+        gboolean peer_res, is_eos;
         GstQueue2Range *queued_ranges;
 
         /* we need a current download region */
@@ -2696,11 +2846,7 @@
           return FALSE;
 
         writing_pos = queue->current->writing_pos;
-        byte_in_rate = queue->byte_in_rate;
-        byte_out_rate = queue->byte_out_rate;
-        is_buffering = queue->is_buffering;
         is_eos = queue->is_eos;
-        percent = queue->buffering_percent;
 
         if (is_eos) {
           /* we're EOS, we know the duration in bytes now */
@@ -2716,27 +2862,13 @@
             ", writing %" G_GINT64_FORMAT, percent, duration, writing_pos);
 
         /* calculate remaining and total download time */
-        if (peer_res && byte_in_rate > 0.0)
-          estimated_total = ((duration - writing_pos) * 1000) / byte_in_rate;
+        if (peer_res && avg_in > 0.0)
+          estimated_total = ((duration - writing_pos) * 1000) / avg_in;
         else
           estimated_total = -1;
 
-        /* calculate estimated remaining buffer time */
-        buffering_left = (percent == 100 ? 0 : -1);
-
-        if (queue->use_rate_estimate) {
-          guint64 max, cur;
-
-          max = queue->max_level.rate_time;
-          cur = queue->cur_level.rate_time;
-
-          if (percent != 100 && max > cur)
-            buffering_left = (max - cur) / 1000000;
-        }
-
-        GST_DEBUG_OBJECT (queue, "estimated-total %" G_GINT64_FORMAT
-            ", buffering-left %" G_GINT64_FORMAT, estimated_total,
-            buffering_left);
+        GST_DEBUG_OBJECT (queue, "estimated-total %" G_GINT64_FORMAT,
+            estimated_total);
 
         gst_query_parse_buffering_range (query, &format, NULL, NULL, NULL);
 
@@ -2799,9 +2931,6 @@
           gst_query_add_buffering_range (query, range_start, range_stop);
         }
 
-        gst_query_set_buffering_percent (query, is_buffering, percent);
-        gst_query_set_buffering_stats (query, GST_BUFFERING_DOWNLOAD,
-            byte_in_rate, byte_out_rate, buffering_left);
         gst_query_set_buffering_range (query, format, start, stop,
             estimated_total);
       }
@@ -2947,7 +3076,7 @@
         GST_DEBUG_OBJECT (queue, "deactivating push mode");
         queue->srcresult = GST_FLOW_FLUSHING;
         queue->sinkresult = GST_FLOW_FLUSHING;
-        gst_queue2_locked_flush (queue);
+        gst_queue2_locked_flush (queue, TRUE);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
       }
       result = TRUE;
diff --git a/plugins/elements/gstqueue2.h b/plugins/elements/gstqueue2.h
index b69f46b..11ee33c 100644
--- a/plugins/elements/gstqueue2.h
+++ b/plugins/elements/gstqueue2.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef __GST_QUEUE2_H__
 #define __GST_QUEUE2_H__
@@ -97,6 +97,9 @@
   /* the queue of data we're keeping our hands on */
   GQueue queue;
 
+  GCond query_handled;
+  gboolean last_query; /* result of last serialized query */
+
   GstQueue2Size cur_level;       /* currently in the queue */
   GstQueue2Size max_level;       /* max. amount of data allowed in the queue */
   gboolean use_buffering;
diff --git a/plugins/elements/gstqueuearray.c b/plugins/elements/gstqueuearray.c
deleted file mode 100644
index 17e6418..0000000
--- a/plugins/elements/gstqueuearray.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* GStreamer
- * Copyright (C) 2009 Edward Hervey <bilboed@bilboed.com>
- *
- * gstqueuearray.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.
- */
-
-#include <string.h>
-#include <gst/gst.h>
-#include "gstqueuearray.h"
-
-void
-gst_queue_array_init (GstQueueArray * array, guint initial_size)
-{
-  array->size = initial_size;
-  array->array = g_new0 (gpointer, initial_size);
-  array->head = 0;
-  array->tail = 0;
-  array->length = 0;
-
-}
-
-GstQueueArray *
-gst_queue_array_new (guint initial_size)
-{
-  GstQueueArray *array;
-
-  array = g_new (GstQueueArray, 1);
-  gst_queue_array_init (array, initial_size);
-  return array;
-}
-
-gpointer
-gst_queue_array_pop_head (GstQueueArray * array)
-{
-  gpointer ret;
-
-  /* empty array */
-  if (G_UNLIKELY (array->length == 0))
-    return NULL;
-  ret = array->array[array->head];
-  array->head++;
-  array->head %= array->size;
-  array->length--;
-  return ret;
-}
-
-void
-gst_queue_array_push_tail (GstQueueArray * array, gpointer data)
-{
-  /* Check if we need to make room */
-  if (G_UNLIKELY (array->length == array->size)) {
-    /* newsize is 50% bigger */
-    guint newsize = (3 * array->size) / 2;
-
-    /* copy over data */
-    if (array->tail != 0) {
-      gpointer *array2 = g_new0 (gpointer, newsize);
-      guint t1 = array->head;
-      guint t2 = array->size - array->head;
-
-      /* [0-----TAIL][HEAD------SIZE]
-       *
-       * We want to end up with
-       * [HEAD------------------TAIL][----FREEDATA------NEWSIZE]
-       *
-       * 1) move [HEAD-----SIZE] part to beginning of new array
-       * 2) move [0-------TAIL] part new array, after previous part
-       */
-
-      memcpy (array2, &array->array[array->head], t2 * sizeof (gpointer));
-      memcpy (&array2[t2], array->array, t1 * sizeof (gpointer));
-
-      g_free (array->array);
-      array->array = array2;
-      array->head = 0;
-    } else {
-      /* Fast path, we just need to grow the array */
-      array->array = g_renew (gpointer, array->array, newsize);
-    }
-    array->tail = array->size;
-    array->size = newsize;
-  }
-
-  array->array[array->tail] = data;
-  array->tail++;
-  array->tail %= array->size;
-  array->length++;
-}
-
-gboolean
-gst_queue_array_is_empty (GstQueueArray * array)
-{
-  return (array->length == 0);
-}
-
-void
-gst_queue_array_clear (GstQueueArray * array)
-{
-  g_free (array->array);
-}
-
-void
-gst_queue_array_free (GstQueueArray * array)
-{
-  gst_queue_array_clear (array);
-  g_free (array);
-}
-
-void
-gst_queue_array_drop_element (GstQueueArray * array, guint idx)
-{
-  int first_item_index = array->head;
-  /* tail points to the first free spot */
-  int last_item_index = (array->tail - 1 + array->size) % array->size;
-
-  g_assert (array->length > 0);
-
-  /* simply case idx == first item */
-  if (idx == first_item_index) {
-    /* move head by plus one */
-    array->head++;
-    array->head %= array->size;
-    array->length--;
-    return;
-  }
-
-  /* simply case idx == last item */
-  if (idx == last_item_index) {
-    /* move tail minus one, potentially wrapping */
-    array->tail = (array->tail - 1 + array->size) % array->size;
-    array->length--;
-    return;
-  }
-
-  /* non-wrapped case */
-  if (first_item_index < last_item_index) {
-    g_assert (first_item_index < idx && idx < last_item_index);
-    /* move everything beyond idx one step towards zero in array */
-    memmove (&array->array[idx],
-        &array->array[idx + 1], (last_item_index - idx) * sizeof (gpointer));
-    /* tail might wrap, ie if tail == 0 (and last_item_index == size) */
-    array->tail = (array->tail - 1 + array->size) % array->size;
-    array->length--;
-    return;
-  }
-
-  /* only wrapped cases left */
-  g_assert (first_item_index > last_item_index);
-
-  if (idx < last_item_index) {
-    /* idx is before last_item_index, move data towards zero */
-    memmove (&array->array[idx],
-        &array->array[idx + 1], (last_item_index - idx) * sizeof (gpointer));
-    /* tail should not wrap in this case! */
-    g_assert (array->tail > 0);
-    array->tail--;
-    array->length--;
-    return;
-  }
-
-  if (idx > first_item_index) {
-    /* idx is after first_item_index, move data to higher indices */
-    memmove (&array->array[first_item_index + 1],
-        &array->array[first_item_index],
-        (idx - first_item_index) * sizeof (gpointer));
-    array->head++;
-    /* head should not wrap in this case! */
-    g_assert (array->head < array->size);
-    array->length--;
-    return;
-  }
-
-  g_assert_not_reached ();
-}
-
-guint
-gst_queue_array_find (GstQueueArray * array, GCompareFunc func, gpointer data)
-{
-  guint i;
-
-  if (func != NULL) {
-    /* Scan from head to tail */
-    for (i = 0; i < array->length; i++) {
-      if (func (array->array[(i + array->head) % array->size], data) == 0)
-        return (i + array->head) % array->size;
-    }
-  } else {
-    for (i = 0; i < array->length; i++) {
-      if (array->array[(i + array->head) % array->size] == data)
-        return (i + array->head) % array->size;
-    }
-  }
-
-  return -1;
-}
diff --git a/plugins/elements/gstqueuearray.h b/plugins/elements/gstqueuearray.h
deleted file mode 100644
index 510cbf4..0000000
--- a/plugins/elements/gstqueuearray.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* GStreamer
- * Copyright (C) 2009-2010 Edward Hervey <bilboed@bilboed.com>
- *
- * gstqueuearray.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.
- */
-
-#include <glib.h>
-
-#ifndef __GST_QUEUE_ARRAY_H__
-#define __GST_QUEUE_ARRAY_H__
-
-typedef struct _GstQueueArray GstQueueArray;
-
-struct _GstQueueArray
-{
-  gpointer *array;
-  guint size;
-  guint head;
-  guint tail;
-  guint length;
-};
-
-G_GNUC_INTERNAL void            gst_queue_array_init  (GstQueueArray * array,
-                                                       guint           initial_size);
-
-G_GNUC_INTERNAL void            gst_queue_array_clear (GstQueueArray * array);
-
-G_GNUC_INTERNAL GstQueueArray * gst_queue_array_new       (guint initial_size);
-
-G_GNUC_INTERNAL gpointer        gst_queue_array_pop_head  (GstQueueArray * array);
-
-G_GNUC_INTERNAL void            gst_queue_array_push_tail (GstQueueArray * array,
-                                                           gpointer        data);
-
-G_GNUC_INTERNAL gboolean        gst_queue_array_is_empty  (GstQueueArray * array);
-
-G_GNUC_INTERNAL void            gst_queue_array_free      (GstQueueArray * array);
-
-G_GNUC_INTERNAL void            gst_queue_array_drop_element (GstQueueArray * array,
-                                                              guint           idx);
-
-G_GNUC_INTERNAL guint           gst_queue_array_find (GstQueueArray * array,
-                                                      GCompareFunc    func,
-                                                      gpointer        data);
-
-#endif
diff --git a/plugins/elements/gsttee.c b/plugins/elements/gsttee.c
index f739505..a6d4b9d 100644
--- a/plugins/elements/gsttee.c
+++ b/plugins/elements/gsttee.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -262,7 +262,7 @@
           DEFAULT_PULL_MODE,
           G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   pspec_alloc_pad = g_param_spec_object ("alloc-pad", "Allocation Src Pad",
-      "The pad used for gst_pad_alloc_buffer", GST_TYPE_PAD,
+      "The pad ALLOCATION queries will be proxied to (unused)", GST_TYPE_PAD,
       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
   g_object_class_install_property (gobject_class, PROP_ALLOC_PAD,
       pspec_alloc_pad);
diff --git a/plugins/elements/gsttee.h b/plugins/elements/gsttee.h
index 5d00947..c092b8f 100644
--- a/plugins/elements/gsttee.h
+++ b/plugins/elements/gsttee.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index fc38031..ebbb6e7 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-typefind
@@ -543,10 +543,14 @@
 
   gst_element_get_state (GST_ELEMENT (typefind), &state, NULL, 0);
 
-  push_cached_buffers = (state >= GST_STATE_PAUSED);
+  push_cached_buffers = (state >= GST_STATE_PAUSED && typefind->caps);
 
   GST_DEBUG_OBJECT (typefind, "stopping typefinding%s",
-      push_cached_buffers ? " and pushing cached buffers" : "");
+      push_cached_buffers ? " and pushing cached events and buffers" : "");
+
+  typefind->mode = MODE_NORMAL;
+  if (push_cached_buffers)
+    gst_type_find_element_send_cached_events (typefind);
 
   GST_OBJECT_LOCK (typefind);
   avail = gst_adapter_available (typefind->adapter);
@@ -561,8 +565,6 @@
   } else {
     GstPad *peer = gst_pad_get_peer (typefind->src);
 
-    typefind->mode = MODE_NORMAL;
-
     /* make sure the user gets a meaningful error message in this case,
      * which is not a core bug or bug of any kind (as the default error
      * message emitted by gstpad.c otherwise would make you think) */
@@ -578,7 +580,6 @@
       typefind->mode = MODE_ERROR;      /* make the chain function error out */
       gst_buffer_unref (buffer);
     } else {
-      gst_type_find_element_send_cached_events (typefind);
       gst_pad_push (typefind->src, buffer);
     }
     if (peer)
@@ -612,16 +613,26 @@
         {
           GstCaps *caps;
 
-          /* first pass the caps event downstream */
-          res = gst_pad_push_event (typefind->src, gst_event_ref (event));
-
-          /* then parse and push out our data */
+          /* Parse and push out our caps and data */
           gst_event_parse_caps (event, &caps);
           res = gst_type_find_element_setcaps (typefind, caps);
 
           gst_event_unref (event);
           break;
         }
+        case GST_EVENT_GAP:
+        {
+          GST_FIXME_OBJECT (typefind,
+              "GAP events during typefinding not handled properly");
+
+          /* FIXME: These would need to be inserted in the stream at
+           * the right position between buffers, but we combine all
+           * buffers with a GstAdapter. Drop the GAP event for now,
+           * which will only cause an implicit GAP between buffers.
+           */
+          gst_event_unref (event);
+          res = TRUE;
+        }
         case GST_EVENT_EOS:
         {
           GST_INFO_OBJECT (typefind, "Got EOS and no type found yet");
@@ -643,13 +654,22 @@
           res = gst_pad_push_event (typefind->src, event);
           break;
         default:
-          GST_DEBUG_OBJECT (typefind, "Saving %s event to send later",
-              GST_EVENT_TYPE_NAME (event));
-          GST_OBJECT_LOCK (typefind);
-          typefind->cached_events =
-              g_list_append (typefind->cached_events, event);
-          GST_OBJECT_UNLOCK (typefind);
-          res = TRUE;
+          /* Forward events that would happen before the caps event
+           * directly instead of storing them. There's no reason not
+           * to send them directly and we should only store events
+           * for later sending that would need to come after the caps
+           * event */
+          if (GST_EVENT_TYPE (event) < GST_EVENT_CAPS) {
+            res = gst_pad_push_event (typefind->src, event);
+          } else {
+            GST_DEBUG_OBJECT (typefind, "Saving %s event to send later",
+                GST_EVENT_TYPE_NAME (event));
+            GST_OBJECT_LOCK (typefind);
+            typefind->cached_events =
+                g_list_append (typefind->cached_events, event);
+            GST_OBJECT_UNLOCK (typefind);
+            res = TRUE;
+          }
           break;
       }
       break;
@@ -695,35 +715,12 @@
       GST_TYPE_FIND_MAXIMUM, caps);
 
   /* Shortcircuit typefinding if we get caps */
-  if (typefind->mode == MODE_TYPEFIND) {
-    GstBuffer *buffer;
-    gsize avail;
+  GST_DEBUG_OBJECT (typefind, "Skipping typefinding, using caps from "
+      "upstream: %" GST_PTR_FORMAT, caps);
 
-    GST_DEBUG_OBJECT (typefind, "Skipping typefinding, using caps from "
-        "upstream buffer: %" GST_PTR_FORMAT, caps);
-    typefind->mode = MODE_NORMAL;
-
-    gst_type_find_element_send_cached_events (typefind);
-    GST_OBJECT_LOCK (typefind);
-    avail = gst_adapter_available (typefind->adapter);
-    if (avail == 0)
-      goto no_data;
-
-    buffer = gst_adapter_take_buffer (typefind->adapter, avail);
-    GST_OBJECT_UNLOCK (typefind);
-
-    GST_DEBUG_OBJECT (typefind, "Pushing buffer: %" G_GSIZE_FORMAT, avail);
-    gst_pad_push (typefind->src, buffer);
-  }
+  stop_typefinding (typefind);
 
   return TRUE;
-
-no_data:
-  {
-    GST_DEBUG_OBJECT (typefind, "no data to push");
-    GST_OBJECT_UNLOCK (typefind);
-    return TRUE;
-  }
 }
 
 static gchar *
@@ -852,39 +849,47 @@
     gboolean check_avail)
 {
   GstTypeFindProbability probability;
-  GstCaps *caps;
+  GstCaps *caps = NULL;
   gsize avail;
   const guint8 *data;
   gboolean have_min, have_max;
 
   GST_OBJECT_LOCK (typefind);
-  avail = gst_adapter_available (typefind->adapter);
-
-  if (check_avail) {
-    have_min = avail >= TYPE_FIND_MIN_SIZE;
-    have_max = avail >= TYPE_FIND_MAX_SIZE;
-  } else {
-    have_min = avail > 0;
-    have_max = TRUE;
+  if (typefind->force_caps) {
+    caps = gst_caps_ref (typefind->force_caps);
+    probability = GST_TYPE_FIND_MAXIMUM;
   }
 
-  if (!have_min)
-    goto not_enough_data;
+  if (!caps) {
+    avail = gst_adapter_available (typefind->adapter);
 
-  /* map all available data */
-  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);
+    if (check_avail) {
+      have_min = avail >= TYPE_FIND_MIN_SIZE;
+      have_max = avail >= TYPE_FIND_MAX_SIZE;
+    } else {
+      have_min = avail > 0;
+      have_max = TRUE;
+    }
 
-  if (caps == NULL && have_max)
-    goto no_type_found;
-  else if (caps == NULL)
-    goto wait_for_data;
+    if (!have_min)
+      goto not_enough_data;
 
-  /* found a type */
-  if (probability < typefind->min_probability)
-    goto low_probability;
+    /* map all available data */
+    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);
+
+    if (caps == NULL && have_max)
+      goto no_type_found;
+    else if (caps == NULL)
+      goto wait_for_data;
+
+    /* found a type */
+    if (probability < typefind->min_probability)
+      goto low_probability;
+  }
+
   GST_OBJECT_UNLOCK (typefind);
 
   /* probability is good enough too, so let's make it known ... emiting this
@@ -966,14 +971,6 @@
        * activation might happen from the streaming thread. */
       gst_pad_pause_task (typefind->sink);
       res = gst_pad_activate_mode (typefind->sink, mode, active);
-      if (active && res && typefind->caps) {
-        GstCaps *caps;
-        GST_OBJECT_LOCK (typefind);
-        caps = gst_caps_ref (typefind->caps);
-        GST_OBJECT_UNLOCK (typefind);
-        res = gst_pad_set_caps (typefind->src, caps);
-        gst_caps_unref (caps);
-      }
       break;
     default:
       res = TRUE;
@@ -990,47 +987,69 @@
 
   typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (pad));
 
+  if (typefind->need_stream_start) {
+    gchar *stream_id;
+
+    stream_id = gst_pad_create_stream_id (typefind->src,
+        GST_ELEMENT_CAST (typefind), NULL);
+
+    GST_DEBUG_OBJECT (typefind, "Pushing STREAM_START");
+    gst_pad_push_event (typefind->src, gst_event_new_stream_start (stream_id));
+
+    typefind->need_stream_start = FALSE;
+    g_free (stream_id);
+  }
+
   if (typefind->mode == MODE_TYPEFIND) {
-    GstPad *peer;
+    GstPad *peer = NULL;
     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) {
-      gint64 size;
-      gchar *ext;
+    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);
 
-      if (!gst_pad_query_duration (peer, GST_FORMAT_BYTES, &size)) {
-        GST_WARNING_OBJECT (typefind, "Could not query upstream length!");
+    if (!found_caps) {
+      peer = gst_pad_get_peer (pad);
+      if (peer) {
+        gint64 size;
+        gchar *ext;
+
+        if (!gst_pad_query_duration (peer, GST_FORMAT_BYTES, &size)) {
+          GST_WARNING_OBJECT (typefind, "Could not query upstream length!");
+          gst_object_unref (peer);
+
+          ret = GST_FLOW_ERROR;
+          goto pause;
+        }
+
+        /* the size if 0, we cannot continue */
+        if (size == 0) {
+          /* keep message in sync with message in sink event handler */
+          GST_ELEMENT_ERROR (typefind, STREAM, TYPE_NOT_FOUND,
+              (_("Stream contains no data.")), ("Can't typefind empty stream"));
+          gst_object_unref (peer);
+          ret = GST_FLOW_ERROR;
+          goto pause;
+        }
+        ext = gst_type_find_get_extension (typefind, pad);
+
+        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);
-
-        ret = GST_FLOW_ERROR;
-        goto pause;
       }
-
-      /* the size if 0, we cannot continue */
-      if (size == 0) {
-        /* keep message in sync with message in sink event handler */
-        GST_ELEMENT_ERROR (typefind, STREAM, TYPE_NOT_FOUND,
-            (_("Stream contains no data.")), ("Can't typefind empty stream"));
-        gst_object_unref (peer);
-        ret = GST_FLOW_ERROR;
-        goto pause;
-      }
-      ext = gst_type_find_get_extension (typefind, pad);
-
-      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) {
@@ -1055,21 +1074,6 @@
   } else if (typefind->mode == MODE_NORMAL) {
     GstBuffer *outbuf = NULL;
 
-    if (typefind->need_stream_start) {
-      gchar *stream_id;
-
-      stream_id =
-          gst_pad_create_stream_id (typefind->src, GST_ELEMENT_CAST (typefind),
-          NULL);
-
-      GST_DEBUG_OBJECT (typefind, "Pushing STREAM_START");
-      gst_pad_push_event (typefind->src,
-          gst_event_new_stream_start (stream_id));
-
-      typefind->need_stream_start = FALSE;
-      g_free (stream_id);
-    }
-
     if (typefind->need_segment) {
       typefind->need_segment = FALSE;
       gst_pad_push_event (typefind->src,
@@ -1176,37 +1180,10 @@
 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;
   GstSchedulingFlags sched_flags;
 
-  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);
-    gst_caps_unref (found_caps);
-    typefind->mode = MODE_NORMAL;
-    /* the signal above could have made a downstream element activate
-     * the pad in pull mode, we check if the pad is already active now and if
-     * so, we are done */
-    if (gst_pad_is_active (pad))
-      return TRUE;
-
-    goto typefind_push;
-  }
-  GST_OBJECT_UNLOCK (typefind);
-
   query = gst_query_new_scheduling ();
 
   if (!gst_pad_peer_query (pad, query)) {
diff --git a/plugins/elements/gsttypefindelement.h b/plugins/elements/gsttypefindelement.h
index 66607db..3551ac5 100644
--- a/plugins/elements/gsttypefindelement.h
+++ b/plugins/elements/gsttypefindelement.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/plugins/elements/gstvalve.c b/plugins/elements/gstvalve.c
index bf60e60..54a9038 100644
--- a/plugins/elements/gstvalve.c
+++ b/plugins/elements/gstvalve.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/plugins/elements/gstvalve.h b/plugins/elements/gstvalve.h
index c12c7c7..eb3c29e 100644
--- a/plugins/elements/gstvalve.h
+++ b/plugins/elements/gstvalve.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/po/LINGUAS b/po/LINGUAS
index 00632a1..2469e53 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-af az be bg ca cs da de en_GB eo es el eu fi fr gl hu hr 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/POTFILES.in b/po/POTFILES.in
index 72c9c75..98c9671 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -5,12 +5,14 @@
 gst/gstelement.c
 gst/gsterror.c
 gst/gstpipeline.c
+gst/gstregistry.c
 gst/gsttaglist.c
 gst/gsttrace.c
+gst/gsturi.c
 gst/gstutils.c
 gst/parse/grammar.y
-libs/gst/base/gstbasesrc.c
 libs/gst/base/gstbasesink.c
+libs/gst/base/gstbasesrc.c
 plugins/elements/gstcapsfilter.c
 plugins/elements/gstfakesink.c
 plugins/elements/gstfdsink.c
diff --git a/po/af.gmo b/po/af.gmo
index 9f5cd2b..1633b6c 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 879025f..aebca14 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -248,6 +248,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "titel"
 
@@ -799,6 +803,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "FOUT: vanaf element %s: %s\n"
 
@@ -863,16 +875,6 @@
 msgid "empty pipeline not allowed"
 msgstr "leë pyplyn word nie toegelaat nie"
 
-#, fuzzy
-msgid "Internal clock error."
-msgstr "Interne datavloeifout."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Interne datavloeifout."
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -883,6 +885,16 @@
 msgid "Internal data stream error."
 msgstr "Interne datavloeifout."
 
+msgid "Internal data flow error."
+msgstr "Interne datavloeifout."
+
+#, fuzzy
+msgid "Internal clock error."
+msgstr "Interne datavloeifout."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1112,6 +1124,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1134,10 +1149,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Pyplyn word gestel na NULL ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "geen element \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "FOUT: vanaf element %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Wys etikette (ook bekend as metadata)"
 
diff --git a/po/az.gmo b/po/az.gmo
index 2232ad6..553847a 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 7ce4a2c..5c494a2 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -233,6 +233,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr ""
 
@@ -754,6 +758,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
@@ -816,15 +828,6 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -834,6 +837,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1059,6 +1071,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1079,9 +1094,17 @@
 msgstr ""
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, c-format
 msgid "Missing element: %s\n"
 msgstr ""
 
+#, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr ""
+
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
diff --git a/po/be.gmo b/po/be.gmo
index b7dbc42..4404452 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index 42e94e4..dbb4863 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -236,6 +236,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "загаловак"
 
@@ -758,6 +762,14 @@
 msgstr ""
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
@@ -822,15 +834,6 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -840,6 +843,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1068,6 +1080,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1088,9 +1103,17 @@
 msgstr ""
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, c-format
 msgid "Missing element: %s\n"
 msgstr ""
 
+#, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr ""
+
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 66918b2..3cc0489 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 196a63d..c11b47d 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -255,6 +255,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Избраният часовник не може да се използва в конвейер."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "заглавие"
 
@@ -332,8 +336,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"свободен текст относно данните във формат ключ=стойност или ключ[език]"
-"=коментар"
+"свободен текст относно данните във формат ключ=стойност или "
+"ключ[език]=коментар"
 
 msgid "track number"
 msgstr "номер на песента"
@@ -791,6 +795,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ГРЕШКА: от елемент %s: %s\n"
 
@@ -855,15 +867,6 @@
 msgid "empty pipeline not allowed"
 msgstr "не е позволен празен конвейер"
 
-msgid "Internal clock error."
-msgstr "Вътрешна грешка на часовника."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Вътрешна грешка на потока от данни."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Много буфери се пропускат."
 
@@ -873,6 +876,15 @@
 msgid "Internal data stream error."
 msgstr "Вътрешна грешка на потока от данни."
 
+msgid "Internal data flow error."
+msgstr "Вътрешна грешка на потока от данни."
+
+msgid "Internal clock error."
+msgstr "Вътрешна грешка на часовника."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Възможности на филтър"
 
@@ -1114,6 +1126,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Буфериран, изчаква се завършването на буферирането…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Буфериран, изчаква се завършването на буферирането…\n"
+
 msgid "buffering..."
 msgstr "буфериране…"
 
@@ -1133,10 +1149,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Прекъсване: Конвейерът се спира…\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "елементът „%s“ липсва"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ПРЕДУПРЕЖДЕНИЕ: от елемент %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Изходни съобщения за етикетите (метаданните)"
 
diff --git a/po/ca.gmo b/po/ca.gmo
index 021abc2..7c78b40 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 7601a6e..4199a7d 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -255,6 +255,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "El rellotge seleccionat no es pot emprar al conducte."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "títol"
 
@@ -800,6 +804,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERROR: des de l'element %s: %s\n"
 
@@ -864,16 +876,6 @@
 msgid "empty pipeline not allowed"
 msgstr "no es permet un conducte buit"
 
-msgid "Internal clock error."
-msgstr "S'ha produït un error intern del rellotge."
-
-#, fuzzy
-msgid "Failed to map buffer."
-msgstr "No s'ha pogut codificar la imatge."
-
-msgid "Internal data flow error."
-msgstr "S'ha produït un error intern de flux de dades."
-
 msgid "A lot of buffers are being dropped."
 msgstr "S'estan descartant moltes memòries intermèdies."
 
@@ -883,6 +885,16 @@
 msgid "Internal data stream error."
 msgstr "S'ha produït un error intern de flux de dades."
 
+msgid "Internal data flow error."
+msgstr "S'ha produït un error intern de flux de dades."
+
+msgid "Internal clock error."
+msgstr "S'ha produït un error intern del rellotge."
+
+#, fuzzy
+msgid "Failed to map buffer."
+msgstr "No s'ha pogut codificar la imatge."
+
 msgid "Filter caps"
 msgstr "Filtra les capacitats"
 
@@ -1119,6 +1131,11 @@
 msgstr ""
 "S'ha preparat, s'està esperant a que s'òmpliga la memòria intermèdial…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+"S'ha preparat, s'està esperant a que s'òmpliga la memòria intermèdial…\n"
+
 msgid "buffering..."
 msgstr "s'està omplint la memòria intermèdia…"
 
@@ -1141,10 +1158,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Interrupció: S'està aturant el conducte…\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "no hi ha cap element «%s»"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "AVÍS: des de l'element %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Mostra els marcadors (també coneguts com metadades)"
 
diff --git a/po/cs.gmo b/po/cs.gmo
index 16c2bc2..8771773 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 9859edd..27bdcbb 100644
--- a/po/cs.po
+++ b/po/cs.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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -251,6 +251,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Vybrané hodiny nelze použít v rouře."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "název"
 
@@ -792,6 +796,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "CHYBA: od prvku %s: %s\n"
 
@@ -856,15 +868,6 @@
 msgid "empty pipeline not allowed"
 msgstr "prázdná roura není povolena"
 
-msgid "Internal clock error."
-msgstr "Interní chyba hodin."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Interní chyba toku dat."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Většina vyrovnávacích pamětí je vyřazena."
 
@@ -874,6 +877,15 @@
 msgid "Internal data stream error."
 msgstr "Interní chyba proudu dat."
 
+msgid "Internal data flow error."
+msgstr "Interní chyba toku dat."
+
+msgid "Internal clock error."
+msgstr "Interní chyba hodin."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtrovat schopnosti"
 
@@ -1116,6 +1128,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Předvinuto, čeká se na dokončení ukládání do vyrovnávací paměti…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Předvinuto, čeká se na dokončení ukládání do vyrovnávací paměti…\n"
+
 msgid "buffering..."
 msgstr "ukládá se do vyrovnávací paměti…"
 
@@ -1136,10 +1152,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Přerušení: Zastavuje se roura…\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "prvek „%s“ neexistuje"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "VAROVÁNÍ: od prvku %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Vypsat štítky (známé také jako metadata)"
 
diff --git a/po/da.gmo b/po/da.gmo
index a112011..9e7dca1 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 56989d6..4f7300c 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -257,6 +257,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Valgt tid kan ikke bruges i rørledningen."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Kunne ikke skrive registraturcache til %s: %s"
+
 msgid "title"
 msgstr "titel"
 
@@ -795,6 +799,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "FEJL: fra element %s: %s\n"
 
@@ -859,15 +871,6 @@
 msgid "empty pipeline not allowed"
 msgstr "tom rørledning ikke tilladt"
 
-msgid "Internal clock error."
-msgstr "Fejl i internt ur."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Intern datastrømsfejl."
-
 msgid "A lot of buffers are being dropped."
 msgstr "En masse af bufferens indhold smides væk."
 
@@ -877,6 +880,15 @@
 msgid "Internal data stream error."
 msgstr "Intern datastrømsfejl."
 
+msgid "Internal data flow error."
+msgstr "Intern datastrømsfejl."
+
+msgid "Internal clock error."
+msgstr "Fejl i internt ur."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filterkapabilitet"
 
@@ -1116,6 +1128,11 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Prerolled, venter på at bufferingen slutter...\n"
 
+# Ingen anelse
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Prerolled, venter på at bufferingen slutter...\n"
+
 msgid "buffering..."
 msgstr "indlæser i buffer..."
 
@@ -1135,10 +1152,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Afbrydelse: Stopper rørledning...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "intet element \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ADVARSEL: fra element %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Uddatamærkater (også kendt som metadata)"
 
@@ -1273,9 +1298,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Undlad installering af signalhåndtering for SIGUSR1 og SIGUSR2"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Kunne ikke skrive registraturcache til %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Kunne ikke genskanne registratur %s: %s"
 
diff --git a/po/de.gmo b/po/de.gmo
index f73a583..203707e 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 2fec83f..26280a8 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,17 +1,17 @@
-# German translation for gstreamer 1.0.3
+# German translation for gstreamer 0.10.30.3
 # Copyright (C) 2004 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gstreamer package.
 #
 # Roland Illig <roland.illig@gmx.de>, 2004.
-# Christian Kirbach <christian.kirbach@googlemail.com>, 2009, 2010, 2011, 2012.
+# Christian Kirbach <christian.kirbach@googlemail.com>, 2009, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-11-28 19:22+0100\n"
-"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: de\n"
 "MIME-Version: 1.0\n"
@@ -119,8 +119,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Interner GStreamer-Fehler: Thread-Problem."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "GStreamer-Fehler: Verhandlungsproblem."
+msgstr "Interner GStreamer-Fehler: Verhandlungsproblem."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Interner GStreamer-Fehler: Ereignisproblem."
@@ -137,8 +138,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "Ihrer Installation von GStreamer fehlt ein Plugin."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "GStreamer-Fehler: Zeitproblem."
+msgstr "Interner GStreamer-Fehler: Zeitproblem."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -264,6 +266,10 @@
 msgstr ""
 "Der ausgewählte Referenztakt kann nicht in der Pipeline verwendet werden."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Fehler beim Schreiben des Zwischenspeichers der Registry nach %s: %s"
+
 msgid "title"
 msgstr "Titel"
 
@@ -569,14 +575,16 @@
 msgid "language code"
 msgstr "Sprachcode"
 
+#, fuzzy
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr "Sprachcode für diesen Strom nach ISO-639-1 oder ISO-639-2"
+msgstr "Sprachcode für diesen Datenstrom nach ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "Sprachname"
+msgstr "Sprachcode"
 
 msgid "freeform name of the language this stream is in"
-msgstr "Name der Sprache, in welcher der Datenstrom ist"
+msgstr ""
 
 msgid "image"
 msgstr "Bild"
@@ -671,12 +679,13 @@
 msgid "geo location sublocation"
 msgstr "geografischer Ortsteil"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
-"ein Ort innerhalb einer Stadt, an dem das Medium aufgezeichnet oder "
-"produziert wurde (z.B. der Stadtteil)"
+"ein Ort innerhalb einer Stadt, in dem das Medium aufgezeichnet oder "
+"produziert wurde"
 
 msgid "geo location horizontal error"
 msgstr "Geografischer horizontaler Fehler"
@@ -812,6 +821,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "FEHLER: Von Element %s: %s\n"
 
@@ -877,15 +894,6 @@
 msgid "empty pipeline not allowed"
 msgstr "Leere Leitung ist nicht erlaubt"
 
-msgid "Internal clock error."
-msgstr "Interner Zeitfehler"
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Interner Fehler im Datenfluss."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Es werden viele Puffer verworfen."
 
@@ -895,6 +903,15 @@
 msgid "Internal data stream error."
 msgstr "Interner Fehler im Datenstrom."
 
+msgid "Internal data flow error."
+msgstr "Interner Fehler im Datenfluss."
+
+msgid "Internal clock error."
+msgstr "Interner Zeitfehler"
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filterfähigkeiten"
 
@@ -1046,14 +1063,12 @@
 msgstr "Die Inhalte des Plugins auflisten"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Prüfen Sie, ob das angegebene Element oder Plugin vorhanden ist"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Kontrollieren Sie beim Prüfen, ob ein Element oder Plugin vorhanden ist, "
-"ebenfalls, ob die Version mindestens der angegebenen entspricht."
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
@@ -1105,16 +1120,17 @@
 msgid "FOUND TAG\n"
 msgstr "KENNZEICHEN GEFUNDEN\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "TOC GEFUNDEN: Gefunden durch Element »%s«.\n"
+msgstr "KENNZEICHEN GEFUNDEN: Gefunden von Element »%s«.\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "TOC GEFUNDEN: Gefunden durch Objekt »%s«.\n"
+msgstr "KENNZEICHEN GEFUNDEN: Gefunden von Objekt »%s«.\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "TOC GEFUNDEN\n"
+msgstr "KENNZEICHEN GEFUNDEN\n"
 
 #, c-format
 msgid ""
@@ -1131,6 +1147,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Vorgelaufen, auf Ende des Zwischenspeicherns warten …\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Vorgelaufen, auf Ende des Zwischenspeicherns warten …\n"
+
 msgid "buffering..."
 msgstr "Zwischenspeichern läuft …"
 
@@ -1154,14 +1174,22 @@
 msgstr "Interrupt: Leitung wird gestoppt ...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Fehlendes Element »%s«\n"
+msgstr "Kein Element »%s«"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "WARNUNG: Von Element %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Kennzeichen (auch bekannt als Metadaten) ausgeben"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "TOC ausgeben (Kapitel und Editionen)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Zustandsinformation und Eigenschaftsmitteilungen ausgeben"
@@ -1229,8 +1257,10 @@
 msgstr ""
 "EOS bei Beenden ist eingeschaltet -- EOS wird auf die Leitung erzwungen\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS bei Beenden ist eingeschaltet -- warten auf EOS nach dem Fehler\n"
+msgstr ""
+"EOS bei Beenden ist eingeschaltet -- EOS wird auf die Leitung erzwungen\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Auf EOS wird gewartet …\n"
@@ -1238,8 +1268,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS erhalten - Leitung wird angehalten …\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Interrupt beim Warten auf EOS - Leitung wird gestoppt ...\n"
+msgstr "Interrupt: Leitung wird gestoppt ...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Ein Fehler ist beim Warten auf EOS aufgetreten\n"
@@ -1256,8 +1287,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Leitung wird geleert ...\n"
 
-#~ msgid "maximum"
-#~ msgstr "Maximum"
+#~ 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"
@@ -1288,14 +1320,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Keine Routinen für SIGUSR1 und SIGUSR2 installieren"
 
-#~ msgid "Print alloc trace (if enabled at compile time)"
-#~ msgstr ""
-#~ "Speicherzuordnungsverfolgung ausgeben (falls zur Kompilierzeit aktiviert)"
-
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr ""
-#~ "Fehler beim Schreiben des Zwischenspeichers der Registry nach %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Fehler beim erneuten Einlesen der Registry %s : %s"
 
diff --git a/po/el.gmo b/po/el.gmo
index 3448957..2f72571 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index d239965..db78fc9 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -257,6 +257,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Το επιλεγμένο ρολόι δεν μπορεί να χρησιμοποιηθεί στη διασωλήνωση."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "τίτλος"
 
@@ -334,8 +338,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"ελεύθερο κείμενο σχολιασμού των δεδομένων της μορφής key=value ή key[en]"
-"=comment"
+"ελεύθερο κείμενο σχολιασμού των δεδομένων της μορφής key=value ή "
+"key[en]=comment"
 
 msgid "track number"
 msgstr "αριθμός κομματιού"
@@ -812,6 +816,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERROR: από στοιχείο %s: %s\n"
 
@@ -876,15 +888,6 @@
 msgid "empty pipeline not allowed"
 msgstr "δεν επιτρέπεται κενή διασωλήνωση"
 
-msgid "Internal clock error."
-msgstr "Σφάλμα εσωτερικού ρολογιού."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Πολλές ενδιάμεσες αποθηκεύσεις απορρίπτονται."
 
@@ -894,6 +897,15 @@
 msgid "Internal data stream error."
 msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
 
+msgid "Internal data flow error."
+msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
+
+msgid "Internal clock error."
+msgstr "Σφάλμα εσωτερικού ρολογιού."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Φιλτράρισμα δυνατοτήτων"
 
@@ -1129,6 +1141,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Προτυλιγμένο, αναμονή για ολοκλήρωση η αποθήκευση ροής…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Προτυλιγμένο, αναμονή για ολοκλήρωση η αποθήκευση ροής…\n"
+
 msgid "buffering..."
 msgstr "προσωρινή αποθήκευση…"
 
@@ -1148,10 +1164,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Διακοπή: Τερματισμός διασωλήνωσης…\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "δεν υπάρχει στοιχείο «%s»"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "WARNING: από το στοιχείο %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Ετικέτες εξόδου (επίσης γνωστές ως μεταδεδομένα)"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 6a2c273..fac5b58 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 ddd71d6..e2659d4 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -253,6 +253,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "title"
 
@@ -803,6 +807,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERROR: from element %s: %s\n"
 
@@ -867,15 +879,6 @@
 msgid "empty pipeline not allowed"
 msgstr "empty pipeline not allowed"
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -885,6 +888,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1115,6 +1127,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1134,10 +1149,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "no element \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ERROR: from element %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Output tags (also known as metadata)"
 
diff --git a/po/eo.gmo b/po/eo.gmo
index 0728438..8f53497 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index c2f5998..a45f738 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -232,6 +232,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "titolo"
 
@@ -743,6 +747,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
@@ -805,15 +817,6 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -823,6 +826,15 @@
 msgid "Internal data stream error."
 msgstr "Interna datumflu-eraro."
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1050,6 +1062,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr "bufrado..."
 
@@ -1069,10 +1084,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "neniu elemento \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "AVERTO: de elemento %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
diff --git a/po/es.gmo b/po/es.gmo
index fb7e555..16d2aab 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 0a8763f..c57f82e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -254,6 +254,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "El reloj seleccionado no se puede usar en la segmentación."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Error al escribir la caché de registro a %s: %s"
+
 msgid "title"
 msgstr "título"
 
@@ -803,6 +807,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERROR: del elemento %s: %s\n"
 
@@ -867,15 +879,6 @@
 msgid "empty pipeline not allowed"
 msgstr "no se permite un conducto vacío"
 
-msgid "Internal clock error."
-msgstr "Error en el reloj interno."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Error en el flujo de datos interno."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Se están desechando muchos búferes."
 
@@ -885,6 +888,15 @@
 msgid "Internal data stream error."
 msgstr "Error interno de flujo de datos."
 
+msgid "Internal data flow error."
+msgstr "Error en el flujo de datos interno."
+
+msgid "Internal clock error."
+msgstr "Error en el reloj interno."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtro de capacidades"
 
@@ -1121,6 +1133,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Preparado, esperando a llenar el búfer para terminar…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Preparado, esperando a llenar el búfer para terminar…\n"
+
 msgid "buffering..."
 msgstr "almacenando en el búfer…"
 
@@ -1142,10 +1158,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Interrumpir: parando el conducto …\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "no hay un elemento «%s»"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ADVERTENCIA: del elemento %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Etiquetas de salida (también conocidos como metadatos)"
 
@@ -1282,9 +1306,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "No instalar los manejadores de señales para SIGUSR1 y SIGUSR2"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Error al escribir la caché de registro a %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Error al volver a escanear el registro %s: %s"
 
diff --git a/po/eu.gmo b/po/eu.gmo
index d6f8340..ad8fc34 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 4a93b76..19b041d 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -258,6 +258,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Hautatutako erlojua ezin da kanalizazioan erabili."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "izenburua"
 
@@ -801,6 +805,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERROREA: %s elementuarena: %s\n"
 
@@ -866,15 +878,6 @@
 msgid "empty pipeline not allowed"
 msgstr "ez dira onartzen kanalizazio hutsak"
 
-msgid "Internal clock error."
-msgstr "Erlojuaren barne-errorea."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Datu-fluxuaren barne-errorea."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Buffer asko jaregiten ari dira."
 
@@ -884,6 +887,15 @@
 msgid "Internal data stream error."
 msgstr "Datu-korrontearen barne-errorea."
 
+msgid "Internal data flow error."
+msgstr "Datu-fluxuaren barne-errorea."
+
+msgid "Internal clock error."
+msgstr "Erlojuaren barne-errorea."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Iragazpen-ahalmena"
 
@@ -1120,6 +1132,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Prestatu da; bufferreratzen bukatu zain...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Prestatu da; bufferreratzen bukatu zain...\n"
+
 msgid "buffering..."
 msgstr "bufferreratzen..."
 
@@ -1140,10 +1156,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Eten: Kanalizazioa gelditzen... \n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "ez dago \"%s\" elementua"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ABISUA,  %s elementuarena: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Erakutsi etiketak (metadatu gisa ere ezagutzen direnak)"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index abf4d6e..5854916 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 80d9e89..188871a 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -254,6 +254,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Valittua kelloa ei voi käyttää liukuhihnassa."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Virhe kirjoitettaessa rekisterivälimuistia kohteeseen %s: %s"
+
 msgid "title"
 msgstr "nimi"
 
@@ -798,6 +802,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "VIRHE: elementiltä %s: %s\n"
 
@@ -862,16 +874,6 @@
 msgid "empty pipeline not allowed"
 msgstr "tyhjää liukuhihnaa ei sallita"
 
-msgid "Internal clock error."
-msgstr "Sisäinen kellovirhe."
-
-#, fuzzy
-msgid "Failed to map buffer."
-msgstr "Kuvan koodaus epäonnistui."
-
-msgid "Internal data flow error."
-msgstr "Sisäinen tiedon virtausvirhe."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Useita puskureita putoilee."
 
@@ -881,6 +883,16 @@
 msgid "Internal data stream error."
 msgstr "Sisäinen tietovirtavirhe."
 
+msgid "Internal data flow error."
+msgstr "Sisäinen tiedon virtausvirhe."
+
+msgid "Internal clock error."
+msgstr "Sisäinen kellovirhe."
+
+#, fuzzy
+msgid "Failed to map buffer."
+msgstr "Kuvan koodaus epäonnistui."
+
 msgid "Filter caps"
 msgstr "Kykysuodatus"
 
@@ -1115,6 +1127,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Esipyöritetty, odotetaan puskuroinnin päättymistä...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Esipyöritetty, odotetaan puskuroinnin päättymistä...\n"
+
 msgid "buffering..."
 msgstr "puskuroidaan..."
 
@@ -1134,10 +1150,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Keskeytys: Pysäytetään liukuhihna ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "ei elementtiä ”%s”"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "VAROITUS: elementiltä %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Tulostemerkinnät (tunnetaan myös metadatana)"
 
@@ -1273,9 +1297,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Älä asenna SIGUSR1- ja SIGUSR2-signaalinkäsittelijöitä"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Virhe kirjoitettaessa rekisterivälimuistia kohteeseen %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Virhe uudelleenskannatessa rekisteriä %s: %s"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index c204317..e68a609 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 3a2d106..169fc86 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,16 +1,16 @@
 # Translation of GStreamer to French
-# Copyright (C) 2003-2012 GStreamer core team
+# Copyright (C) 2003-2011 GStreamer core team
 # This file is distributed under the same license as the gstreamer package.
 #
 # Thomas Vander Stichele <thomas@apestaart.org>, 2004.
-# Claude Paroz <claude@2xlibre.net>, 2008-2012.
+# Claude Paroz <claude@2xlibre.net>, 2008-2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-12-05 19:31+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: fr\n"
@@ -119,8 +119,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Erreur interne de GStreamer : problème de thread."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Erreur GStreamer : problème de négociation."
+msgstr "Erreur interne de GStreamer : problème de négociation."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Erreur interne de GStreamer : problème d'événement."
@@ -137,8 +138,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "Il manque un greffon dans votre installation de GStreamer."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Erreur Gstreamer : problème d'horloge."
+msgstr "Erreur interne de Gstreamer : problème d'horloge."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -253,6 +255,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "L'horloge sélectionnée ne peut pas être utilisée dans le pipeline."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "titre"
 
@@ -331,8 +337,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"texte libre décrivant les données sous la forme clé=valeur ou clé[en]"
-"=commentaire"
+"texte libre décrivant les données sous la forme clé=valeur ou "
+"clé[en]=commentaire"
 
 msgid "track number"
 msgstr "numéro de piste"
@@ -554,14 +560,16 @@
 msgid "language code"
 msgstr "code linguistique"
 
+#, 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 ou ISO-639-2"
+msgstr "code linguistique du flux, selon la norme ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "nom de la langue"
+msgstr "code linguistique"
 
 msgid "freeform name of the language this stream is in"
-msgstr "nom explicite de la langue de ce flux"
+msgstr ""
 
 msgid "image"
 msgstr "image"
@@ -652,6 +660,7 @@
 msgid "geo location sublocation"
 msgstr "zone locale de l'emplacement"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -794,6 +803,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERREUR : de l'élément %s : %s\n"
 
@@ -858,15 +875,6 @@
 msgid "empty pipeline not allowed"
 msgstr "pipeline vide non autorisé"
 
-msgid "Internal clock error."
-msgstr "Erreur d'horloge interne."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Erreur interne de flux de données."
-
 msgid "A lot of buffers are being dropped."
 msgstr "De nombreux tampons sont éliminés."
 
@@ -876,6 +884,15 @@
 msgid "Internal data stream error."
 msgstr "Erreur interne de flux de données."
 
+msgid "Internal data flow error."
+msgstr "Erreur interne de flux de données."
+
+msgid "Internal clock error."
+msgstr "Erreur d'horloge interne."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Capacités de filtrage"
 
@@ -1028,14 +1045,12 @@
 msgstr "Énumère le contenu du greffon"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Vérifie si l'élément ou le greffon indiqué existe"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Lors de la vérification de l'existence d'un élément ou d'un greffon, vérifie "
-"aussi que sa version est au minimum la version indiquée"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
@@ -1088,16 +1103,17 @@
 msgid "FOUND TAG\n"
 msgstr "BALISE TROUVÉE\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "TDM TROUVÉE     : découverte par l'élément « %s ».\n"
+msgstr "BALISE TROUVÉE  : découverte par l'élément « %s ».\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "TDM TROUVÉE     : découverte par l'objet « %s ».\n"
+msgstr "BALISE TROUVÉE  : découverte par l'objet « %s ».\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "TDM TROUVÉE\n"
+msgstr "BALISE TROUVÉE\n"
 
 #, c-format
 msgid ""
@@ -1114,6 +1130,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Préparation terminée, attente de la fin de remplissage du tampon...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Préparation terminée, attente de la fin de remplissage du tampon...\n"
+
 msgid "buffering..."
 msgstr "mise en mémoire tampon..."
 
@@ -1134,14 +1154,22 @@
 msgstr "Interruption : arrêt du pipeline...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Élément manquant : %s\n"
+msgstr "pas d'élément « %s »"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "AVERTISSEMENT : de l'élément %s : %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Affiche les balises (aussi connues sous le nom de métadonnées)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "Affiche la table des matières (chapitres et éditions)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Affiche des informations d'état et des notifications de propriétés"
@@ -1208,8 +1236,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS à la fermeture est activé -- EOS forcé sur le pipeline\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS à la fermeture est activé -- attente d'EOS après erreur\n"
+msgstr "EOS à la fermeture est activé -- EOS forcé sur le pipeline\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Attente d'EOS...\n"
@@ -1217,8 +1246,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS reçu - arrêt du pipeline...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Interruption lors de l'attende d'EOS - arrêt du pipeline...\n"
+msgstr "Interruption : arrêt du pipeline...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Une erreur s'est produite lors de l'attente de l'EOS\n"
@@ -1235,6 +1265,15 @@
 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."
+#~ "propriété=valeur ... ]\n"
+
 #~ msgid "ERROR: parse of xml file '%s' failed.\n"
 #~ msgstr "ERREUR : l'analyse du fichier xml « %s » a échoué.\n"
 
@@ -1262,3 +1301,6 @@
 
 #~ msgid "FILE"
 #~ msgstr "FICHIER"
+
+#~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
+#~ msgstr "N'installe pas de gestionnaire de signal pour SIGUSR1 et SIGUSR2"
diff --git a/po/gl.gmo b/po/gl.gmo
index 28f672d..f1cb592 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 046a421..12737f8 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -1,22 +1,20 @@
 # Galician translations for gstreamer package.
 # This file is put in the public domain.
 # Francisco Diéguez <frandieguez@ubuntu.com>, 2011.
-# Fran Dieguez <frandieguez@gnome.org>, 2012.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-12-15 03:29+0200\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
-"Language: gl\n"
+"Language: gl_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"
-"X-Generator: Virtaal 0.7.1\n"
-"X-Project-Style: gnome\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 msgid "Print the GStreamer version"
 msgstr "Imprimir a versión de GStreamer"
@@ -116,8 +114,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Erro interno de GStreamer: problema cos fíos"
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Erro de GStreamer: problema de negociación."
+msgstr "Erro interno de GStreamer: problema de negociación."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Erro interno de GStreamer: problema cos eventos."
@@ -134,8 +133,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "Á súa instalación de GStreamer fáltalle un engadido."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Erro de GStreamer: problema de reloxo."
+msgstr "Erro interno de GStreamer: problema de reloxo."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -251,6 +251,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Non é posíbel usar o reloxo seleccionado na canalización."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "título"
 
@@ -553,14 +557,16 @@
 msgid "language code"
 msgstr "código de idioma"
 
+#, 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 ou ISO-639-2"
+msgstr "código de idioma para este fluxo, axustándose a ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "nome do idioma"
+msgstr "código de idioma"
 
 msgid "freeform name of the language this stream is in"
-msgstr "nome freeform do idioma no que está este fluxo"
+msgstr ""
 
 msgid "image"
 msgstr "imaxe"
@@ -651,6 +657,7 @@
 msgid "geo location sublocation"
 msgstr "sublocalización da xeolocalización"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -791,6 +798,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERRO: do elemento %s: %s\n"
 
@@ -855,15 +870,6 @@
 msgid "empty pipeline not allowed"
 msgstr "non se permite unha canalización baleira"
 
-msgid "Internal clock error."
-msgstr "Produciuse un erro no reloxo interno."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Produciuse un erro no fluxo interno de datos."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Estanse a desbotar moitos búferes."
 
@@ -873,6 +879,15 @@
 msgid "Internal data stream error."
 msgstr "Produciuse un erro no fluxo interno de datos."
 
+msgid "Internal data flow error."
+msgstr "Produciuse un erro no fluxo interno de datos."
+
+msgid "Internal clock error."
+msgstr "Produciuse un erro no reloxo interno."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtro de capacidades"
 
@@ -1025,14 +1040,12 @@
 msgstr "Listar o contido do engadido"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Comprobar se o elemento ou engadido especificado existe"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Ao comprobar se un elemento ou engadido existe, tamén comprobar se a súa "
-"versión é cando menos a versión especificada"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr "Imprimir os esquemas URI admitidos, cos elementos que os implementan"
@@ -1083,16 +1096,17 @@
 msgid "FOUND TAG\n"
 msgstr "ETIQUETA ENCONTRADA\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "TOC ATOPADO    : atopado polo elemento «%s».\n"
+msgstr "ATOPADA ETIQUETA      : atopada polo elemento «%s».\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "TOC ATOPADO    : encontrado polo obxecto «%s».\n"
+msgstr "ETIQUETA ENCONTRADA      : encontrada polo obxecto «%s».\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "TOC ATOPADO\n"
+msgstr "ETIQUETA ENCONTRADA\n"
 
 #, c-format
 msgid ""
@@ -1109,6 +1123,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Preparado, agardando a encher o búfer para rematar…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Preparado, agardando a encher o búfer para rematar…\n"
+
 msgid "buffering..."
 msgstr "almacenando no búfer…"
 
@@ -1131,14 +1149,22 @@
 msgstr "Interromper: parando a canalización …\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Elemento que falta: «%s»\n"
+msgstr "non hai un elemento «%s»"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "AVISO: do elemento %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Etiquetas de saída (tamén coñecido como metadatos)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "TOC de saída (capítulos e edicións)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Información do estado da saída e notificacións das propiedades"
@@ -1205,8 +1231,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS ao apagar activado; Forzando EOS na tubería\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS ao apagar activado; -- agardando polo EOS despois de erro\n"
+msgstr "EOS ao apagar activado; Forzando EOS na tubería\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Agardando pola EOS...\n"
@@ -1214,8 +1241,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS recibido: detendo a tubería...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Interromper ao agardar polo EOS - detendo a canalización…\n"
+msgstr "Interromper: parando a canalización …\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Produciuse un erro ao esperar a EOS\n"
@@ -1232,8 +1260,8 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Liberando a tubería...\n"
 
-#~ msgid "maximum"
-#~ msgstr "máximo"
+#~ 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 ""
@@ -1265,6 +1293,3 @@
 
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Non instalar os manexadores de sinais para SIGUSR1 e SIGUSR2"
-
-#~ msgid "Print alloc trace (if enabled at compile time)"
-#~ msgstr "Imprimir a traza de asignacións (se foi activada ao compilar)"
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index 8a39185..9ee84a4 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.8\n"
+"Project-Id-Version: gstreamer 1.1.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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,88 +17,88 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: gst/gst.c:308
+#: gst/gst.c:232
 msgid "Print the GStreamer version"
 msgstr ""
 
-#: gst/gst.c:310
+#: gst/gst.c:234
 msgid "Make all warnings fatal"
 msgstr ""
 
-#: gst/gst.c:314
+#: gst/gst.c:238
 msgid "Print available debug categories and exit"
 msgstr ""
 
-#: gst/gst.c:318
+#: gst/gst.c:242
 msgid ""
 "Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
 msgstr ""
 
-#: gst/gst.c:320
+#: gst/gst.c:244
 msgid "LEVEL"
 msgstr ""
 
-#: gst/gst.c:322
+#: gst/gst.c:246
 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:325
+#: gst/gst.c:249
 msgid "LIST"
 msgstr ""
 
-#: gst/gst.c:327
+#: gst/gst.c:251
 msgid "Disable colored debugging output"
 msgstr ""
 
-#: gst/gst.c:330
+#: gst/gst.c:254
 msgid "Disable debugging"
 msgstr ""
 
-#: gst/gst.c:334
+#: gst/gst.c:258
 msgid "Enable verbose plugin loading diagnostics"
 msgstr ""
 
-#: gst/gst.c:338
+#: gst/gst.c:262
 msgid "Colon-separated paths containing plugins"
 msgstr ""
 
-#: gst/gst.c:338
+#: gst/gst.c:262
 msgid "PATHS"
 msgstr ""
 
-#: gst/gst.c:341
+#: gst/gst.c:265
 msgid ""
 "Comma-separated list of plugins to preload in addition to the list stored in "
 "environment variable GST_PLUGIN_PATH"
 msgstr ""
 
-#: gst/gst.c:343
+#: gst/gst.c:267
 msgid "PLUGINS"
 msgstr ""
 
-#: gst/gst.c:346
+#: gst/gst.c:270
 msgid "Disable trapping of segmentation faults during plugin loading"
 msgstr ""
 
-#: gst/gst.c:351
+#: gst/gst.c:275
 msgid "Disable updating the registry"
 msgstr ""
 
-#: gst/gst.c:356
+#: gst/gst.c:280
 msgid "Disable spawning a helper process while scanning the registry"
 msgstr ""
 
-#: gst/gst.c:361
+#: gst/gst.c:285
 msgid "GStreamer Options"
 msgstr ""
 
-#: gst/gst.c:362
+#: gst/gst.c:286
 msgid "Show GStreamer Options"
 msgstr ""
 
-#: gst/gst.c:921
+#: gst/gst.c:848
 msgid "Unknown option"
 msgstr ""
 
@@ -299,6 +299,11 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#: gst/gstregistry.c:1651
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 #: gst/gsttaglist.c:105
 msgid "title"
 msgstr ""
@@ -968,12 +973,22 @@
 msgid ", "
 msgstr ""
 
-#: gst/gstutils.c:2338 tools/gst-launch.c:366
+#: gst/gsturi.c:591
+#, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#: gst/gsturi.c:764
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#: gst/gstutils.c:2338 tools/gst-launch.c:324
 #, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
-#: gst/gstutils.c:2340 tools/gst-launch.c:368 tools/gst-launch.c:730
+#: gst/gstutils.c:2340 tools/gst-launch.c:326 tools/gst-launch.c:660
 #, c-format
 msgid ""
 "Additional debug info:\n"
@@ -1048,6 +1063,24 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
+#: libs/gst/base/gstbasesink.c:2790
+msgid "A lot of buffers are being dropped."
+msgstr ""
+
+#: libs/gst/base/gstbasesink.c:3255
+msgid "Internal data flow problem."
+msgstr ""
+
+#: libs/gst/base/gstbasesink.c:3913
+msgid "Internal data stream error."
+msgstr ""
+
+#: libs/gst/base/gstbasesink.c:3923 libs/gst/base/gstbasesrc.c:2811
+#: libs/gst/base/gstbasesrc.c:2820 plugins/elements/gstqueue.c:1276
+#: plugins/elements/gstqueue2.c:2694
+msgid "Internal data flow error."
+msgstr ""
+
 #: libs/gst/base/gstbasesrc.c:2440
 msgid "Internal clock error."
 msgstr ""
@@ -1056,29 +1089,11 @@
 msgid "Failed to map buffer."
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2811 libs/gst/base/gstbasesrc.c:2820
-#: libs/gst/base/gstbasesink.c:3776 plugins/elements/gstqueue.c:1197
-#: plugins/elements/gstqueue2.c:2565
-msgid "Internal data flow error."
-msgstr ""
-
-#: libs/gst/base/gstbasesink.c:2682
-msgid "A lot of buffers are being dropped."
-msgstr ""
-
-#: libs/gst/base/gstbasesink.c:3140
-msgid "Internal data flow problem."
-msgstr ""
-
-#: libs/gst/base/gstbasesink.c:3766
-msgid "Internal data stream error."
-msgstr ""
-
-#: plugins/elements/gstcapsfilter.c:100
+#: plugins/elements/gstcapsfilter.c:103
 msgid "Filter caps"
 msgstr ""
 
-#: plugins/elements/gstcapsfilter.c:101
+#: plugins/elements/gstcapsfilter.c:104
 msgid ""
 "Restrict the possible allowed capabilities (NULL means ANY). Setting this "
 "property takes a reference to the supplied GstCaps object."
@@ -1112,7 +1127,7 @@
 msgid "No file name specified for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:512 plugins/elements/gstqueue2.c:1437
+#: plugins/elements/gstfilesrc.c:512 plugins/elements/gstqueue2.c:1491
 #, c-format
 msgid "Could not open file \"%s\" for reading."
 msgstr ""
@@ -1136,16 +1151,16 @@
 msgid "Failed after iterations as requested."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1423
+#: plugins/elements/gstqueue2.c:1477
 msgid "No Temp directory specified."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1429
+#: plugins/elements/gstqueue2.c:1483
 #, c-format
 msgid "Could not create temp file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1819
+#: plugins/elements/gstqueue2.c:1885
 msgid "Error while writing to download file."
 msgstr ""
 
@@ -1169,83 +1184,83 @@
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:1017
+#: plugins/elements/gsttypefindelement.c:1035
 msgid "Stream contains no data."
 msgstr ""
 
-#: tools/gst-inspect.c:248
+#: tools/gst-inspect.c:259
 msgid "Implemented Interfaces:\n"
 msgstr ""
 
-#: tools/gst-inspect.c:334
+#: tools/gst-inspect.c:345
 msgid "readable"
 msgstr ""
 
-#: tools/gst-inspect.c:343
+#: tools/gst-inspect.c:354
 msgid "writable"
 msgstr ""
 
-#: tools/gst-inspect.c:347
+#: tools/gst-inspect.c:358
 msgid "controllable"
 msgstr ""
 
-#: tools/gst-inspect.c:351
+#: tools/gst-inspect.c:362
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
 msgstr ""
 
-#: tools/gst-inspect.c:353
+#: tools/gst-inspect.c:364
 msgid "changeable only in NULL, READY or PAUSED state"
 msgstr ""
 
-#: tools/gst-inspect.c:355
+#: tools/gst-inspect.c:366
 msgid "changeable only in NULL or READY state"
 msgstr ""
 
-#: tools/gst-inspect.c:969
+#: tools/gst-inspect.c:980
 msgid "Blacklisted files:"
 msgstr ""
 
-#: tools/gst-inspect.c:981 tools/gst-inspect.c:1079
+#: tools/gst-inspect.c:992 tools/gst-inspect.c:1090
 msgid "Total count: "
 msgstr ""
 
-#: tools/gst-inspect.c:982
+#: tools/gst-inspect.c:993
 #, c-format
 msgid "%d blacklisted file"
 msgid_plural "%d blacklisted files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1080
+#: tools/gst-inspect.c:1091
 #, c-format
 msgid "%d plugin"
 msgid_plural "%d plugins"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1083
+#: tools/gst-inspect.c:1094
 #, c-format
 msgid "%d blacklist entry"
 msgid_plural "%d blacklist entries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1088
+#: tools/gst-inspect.c:1099
 #, c-format
 msgid "%d feature"
 msgid_plural "%d features"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1532
+#: tools/gst-inspect.c:1543
 msgid "Print all elements"
 msgstr ""
 
-#: tools/gst-inspect.c:1534
+#: tools/gst-inspect.c:1545
 msgid "Print list of blacklisted files"
 msgstr ""
 
-#: tools/gst-inspect.c:1536
+#: tools/gst-inspect.c:1547
 msgid ""
 "Print a machine-parsable list of features the specified plugin or all "
 "plugins provide.\n"
@@ -1253,268 +1268,282 @@
 "automatic plugin installation mechanisms"
 msgstr ""
 
-#: tools/gst-inspect.c:1541
+#: tools/gst-inspect.c:1552
 msgid "List the plugin contents"
 msgstr ""
 
-#: tools/gst-inspect.c:1543
+#: tools/gst-inspect.c:1554
 msgid "Check if the specified element or plugin exists"
 msgstr ""
 
-#: tools/gst-inspect.c:1546
+#: tools/gst-inspect.c:1557
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
 
-#: tools/gst-inspect.c:1550
+#: tools/gst-inspect.c:1561
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
 
-#: tools/gst-inspect.c:1688
+#: tools/gst-inspect.c:1699
 #, c-format
 msgid "Could not load plugin file: %s\n"
 msgstr ""
 
-#: tools/gst-inspect.c:1693
+#: tools/gst-inspect.c:1704
 #, c-format
 msgid "No such element or plugin '%s'\n"
 msgstr ""
 
-#: tools/gst-launch.c:293
+#: tools/gst-launch.c:251
 msgid "Index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:611
+#: tools/gst-launch.c:541
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:615
+#: tools/gst-launch.c:545
 #, c-format
 msgid "Got message #%u from pad \"%s:%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:619
+#: tools/gst-launch.c:549
 #, c-format
 msgid "Got message #%u from object \"%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:623
+#: tools/gst-launch.c:553
 #, c-format
 msgid "Got message #%u (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:655
+#: tools/gst-launch.c:585
 #, c-format
 msgid "Got EOS from element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:664
+#: tools/gst-launch.c:594
 #, c-format
 msgid "FOUND TAG      : found by element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:667
+#: tools/gst-launch.c:597
 #, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:670
+#: tools/gst-launch.c:600
 #, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:673
+#: tools/gst-launch.c:603
 msgid "FOUND TAG\n"
 msgstr ""
 
-#: tools/gst-launch.c:688
+#: tools/gst-launch.c:618
 #, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:691
+#: tools/gst-launch.c:621
 #, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:694
+#: tools/gst-launch.c:624
 msgid "FOUND TOC\n"
 msgstr ""
 
-#: tools/gst-launch.c:711
+#: tools/gst-launch.c:641
 #, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
 msgstr ""
 
-#: tools/gst-launch.c:728
+#: tools/gst-launch.c:658
 #, c-format
 msgid "WARNING: from element %s: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:758
+#: tools/gst-launch.c:693
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
-#: tools/gst-launch.c:775
+#: tools/gst-launch.c:697
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
+#: tools/gst-launch.c:709
 msgid "buffering..."
 msgstr ""
 
-#: tools/gst-launch.c:786
+#: tools/gst-launch.c:720
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:794
+#: tools/gst-launch.c:728
 msgid "Buffering, setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:803
+#: tools/gst-launch.c:737
 msgid "Redistribute latency...\n"
 msgstr ""
 
-#: tools/gst-launch.c:814
+#: tools/gst-launch.c:748
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
 msgstr ""
 
-#: tools/gst-launch.c:830
+#: tools/gst-launch.c:764
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:841
+#: tools/gst-launch.c:793
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#: tools/gst-launch.c:806
 #, c-format
 msgid "Missing element: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:923
+#: tools/gst-launch.c:818
+#, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr ""
+
+#: tools/gst-launch.c:954
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-#: tools/gst-launch.c:925
+#: tools/gst-launch.c:956
 msgid "Output TOC (chapters and editions)"
 msgstr ""
 
-#: tools/gst-launch.c:927
+#: tools/gst-launch.c:958
 msgid "Output status information and property notifications"
 msgstr ""
 
-#: tools/gst-launch.c:929
+#: tools/gst-launch.c:960
 msgid "Do not print any progress information"
 msgstr ""
 
-#: tools/gst-launch.c:931
+#: tools/gst-launch.c:962
 msgid "Output messages"
 msgstr ""
 
-#: tools/gst-launch.c:933
+#: tools/gst-launch.c:964
 msgid "Do not output status information of TYPE"
 msgstr ""
 
-#: tools/gst-launch.c:933
+#: tools/gst-launch.c:964
 msgid "TYPE1,TYPE2,..."
 msgstr ""
 
-#: tools/gst-launch.c:935
+#: tools/gst-launch.c:966
 msgid "Do not install a fault handler"
 msgstr ""
 
-#: tools/gst-launch.c:937
+#: tools/gst-launch.c:968
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
-#: tools/gst-launch.c:940
+#: tools/gst-launch.c:971
 msgid "Gather and print index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:1002
+#: tools/gst-launch.c:1031
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1006
+#: tools/gst-launch.c:1035
 msgid "ERROR: pipeline could not be constructed.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1010
+#: tools/gst-launch.c:1039
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:1033
+#: tools/gst-launch.c:1062
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1060 tools/gst-launch.c:1155
+#: tools/gst-launch.c:1089 tools/gst-launch.c:1185
 msgid "Setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1065
+#: tools/gst-launch.c:1094
 msgid "ERROR: Pipeline doesn't want to pause.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1070
+#: tools/gst-launch.c:1099
 msgid "Pipeline is live and does not need PREROLL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1074
+#: tools/gst-launch.c:1103
 msgid "Pipeline is PREROLLING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1077 tools/gst-launch.c:1090
+#: tools/gst-launch.c:1106 tools/gst-launch.c:1119
 msgid "ERROR: pipeline doesn't want to preroll.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1083
+#: tools/gst-launch.c:1112
 msgid "Pipeline is PREROLLED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1095
+#: tools/gst-launch.c:1124
 msgid "Setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1102
+#: tools/gst-launch.c:1131
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1120
+#: tools/gst-launch.c:1149
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
-#: tools/gst-launch.c:1124
+#: tools/gst-launch.c:1153
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
 msgstr ""
 
-#: tools/gst-launch.c:1127
+#: tools/gst-launch.c:1156
 msgid "Waiting for EOS...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1134
+#: tools/gst-launch.c:1163
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1138
+#: tools/gst-launch.c:1167
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1142
+#: tools/gst-launch.c:1171
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
-#: tools/gst-launch.c:1152
+#: tools/gst-launch.c:1181
 msgid "Execution ended after %"
 msgstr ""
 
-#: tools/gst-launch.c:1163
+#: tools/gst-launch.c:1193
 msgid "Setting pipeline to READY ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1175
+#: tools/gst-launch.c:1205
 msgid "Setting pipeline to NULL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1179
+#: tools/gst-launch.c:1209
 msgid "Freeing pipeline ...\n"
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
deleted file mode 100644
index 486a2e8..0000000
--- a/po/hr.gmo
+++ /dev/null
Binary files differ
diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644
index 17c5587..0000000
--- a/po/hr.po
+++ /dev/null
@@ -1,1264 +0,0 @@
-# Translation of gstreamer to Croatian.
-# This file is put in the public domain.
-# Tomislav Krznar <tomislav.krznar@gmail.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: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-05-25 16:47+0200\n"
-"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"Language: \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"
-
-msgid "Print the GStreamer version"
-msgstr "Ispiši inačicu GStreamera"
-
-msgid "Make all warnings fatal"
-msgstr "Učini sva upozorenja fatalnim"
-
-msgid "Print available debug categories and exit"
-msgstr "Ispiši dostupne kategorije debugiranja i izađi"
-
-msgid ""
-"Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
-msgstr ""
-"Zadana razina debugiranja od 1 (samo greške) do 5 (sve) ili 0 bez ispisa"
-
-msgid "LEVEL"
-msgstr "RAZINA"
-
-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 ""
-"Popis zarezom odvojenih parova category_name:level za postavljanje posebnih "
-"razina za pojedine kategorije. Primjer: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
-
-msgid "LIST"
-msgstr "POPIS"
-
-msgid "Disable colored debugging output"
-msgstr "Onemogući obojani ispis debugiranja"
-
-msgid "Disable debugging"
-msgstr "Onemogući debugiranje"
-
-msgid "Enable verbose plugin loading diagnostics"
-msgstr "Omogući opširnu dijagnozu učitavanja priključaka"
-
-msgid "Colon-separated paths containing plugins"
-msgstr "Dvotočkom odvojene putanje koje sadržavaju priključke"
-
-msgid "PATHS"
-msgstr "PUTANJE"
-
-msgid ""
-"Comma-separated list of plugins to preload in addition to the list stored in "
-"environment variable GST_PLUGIN_PATH"
-msgstr ""
-"Zarezima odvojen popis priključaka koji će se učitati uz popis spremljen u "
-"varijablu okoline GST_PLUGIN_PATH"
-
-msgid "PLUGINS"
-msgstr "PRIKLJUČCI"
-
-msgid "Disable trapping of segmentation faults during plugin loading"
-msgstr "Onemogući hvatanje segmentacijskih grešaka pri učitavanju priključaka"
-
-msgid "Disable updating the registry"
-msgstr "Onemogući ažuriranje registra"
-
-msgid "Disable spawning a helper process while scanning the registry"
-msgstr "Onemogući stvaranje pomoćnog procesa pri pretraživanju registra"
-
-msgid "GStreamer Options"
-msgstr "GStreamer opcije"
-
-msgid "Show GStreamer Options"
-msgstr "Prikaži GStreamer opcije"
-
-msgid "Unknown option"
-msgstr "Nepoznata opcija"
-
-msgid "GStreamer encountered a general core library error."
-msgstr "GStreamer je naišao na opću grešku osnovne biblioteke."
-
-msgid ""
-"GStreamer developers were too lazy to assign an error code to this error."
-msgstr "Razvijatelji GStreamera su bili prelijeni da pridruže kod ovoj grešci."
-
-msgid "Internal GStreamer error: code not implemented."
-msgstr "Interna GStreamer greška: kod nije implementiran."
-
-msgid ""
-"GStreamer error: state change failed and some element failed to post a "
-"proper error message with the reason for the failure."
-msgstr ""
-"GStreamer greška: nije uspjela promjena stanja i neki element nije uspio "
-"poslati ispravnu poruku greške s razlogom neuspjeha."
-
-msgid "Internal GStreamer error: pad problem."
-msgstr "Interna GStreamer greška: problem podloge."
-
-msgid "Internal GStreamer error: thread problem."
-msgstr "Interna GStreamer greška: problem dretve."
-
-#, fuzzy
-msgid "GStreamer error: negotiation problem."
-msgstr "Interna GStreamer greška: problem pregovaranja."
-
-msgid "Internal GStreamer error: event problem."
-msgstr "Interna GStreamer greška: problem događaja."
-
-msgid "Internal GStreamer error: seek problem."
-msgstr "Interna GStreamer greška: problem traženja."
-
-msgid "Internal GStreamer error: caps problem."
-msgstr "Interna GStreamer greška: problem mogućnosti."
-
-msgid "Internal GStreamer error: tag problem."
-msgstr "Interna GStreamer greška: problem oznake."
-
-msgid "Your GStreamer installation is missing a plug-in."
-msgstr "Vašoj GStreamer instalaciji nedostaje priključak."
-
-#, fuzzy
-msgid "GStreamer error: clock problem."
-msgstr "Interna GStreamer greška: problem takta."
-
-msgid ""
-"This application is trying to use GStreamer functionality that has been "
-"disabled."
-msgstr "Ovaj program pokušava koristiti onemogućenu GStreamer mogućnost."
-
-msgid "GStreamer encountered a general supporting library error."
-msgstr "GStreamer je naišao na opću grešku pomoćne biblioteke."
-
-msgid "Could not initialize supporting library."
-msgstr "Ne mogu inicijalizirati pomoćnu biblioteku."
-
-msgid "Could not close supporting library."
-msgstr "Ne mogu zatvoriti pomoćnu biblioteku."
-
-msgid "Could not configure supporting library."
-msgstr "Ne mogu konfigurirati pomoćnu biblioteku."
-
-msgid "Encoding error."
-msgstr "Greška kodiranja."
-
-msgid "GStreamer encountered a general resource error."
-msgstr "GStreamer je naišao na opću grešku resursa."
-
-msgid "Resource not found."
-msgstr "Resurs nije pronađen."
-
-msgid "Resource busy or not available."
-msgstr "Resurs je zauzet ili nedostupan."
-
-msgid "Could not open resource for reading."
-msgstr "Ne mogu otvoriti resurs za čitanje."
-
-msgid "Could not open resource for writing."
-msgstr "Ne mogu otvoriti resurs za pisanje."
-
-msgid "Could not open resource for reading and writing."
-msgstr "Ne mogu otvoriti resurs za čitanje i pisanje."
-
-msgid "Could not close resource."
-msgstr "Ne mogu zatvoriti resurs."
-
-msgid "Could not read from resource."
-msgstr "Ne mogu čitati iz resursa."
-
-msgid "Could not write to resource."
-msgstr "Ne mogu pisati u resurs."
-
-msgid "Could not perform seek on resource."
-msgstr "Ne mogu izvršiti traženje na resursu."
-
-msgid "Could not synchronize on resource."
-msgstr "Ne mogu sinkronizirati na resursu."
-
-msgid "Could not get/set settings from/on resource."
-msgstr "Ne mogu dohvatiti/postaviti postavke resursa."
-
-msgid "No space left on the resource."
-msgstr "Nema više prostora na resursu."
-
-msgid "GStreamer encountered a general stream error."
-msgstr "GStreamer je naišao na opću grešku toka podataka."
-
-msgid "Element doesn't implement handling of this stream. Please file a bug."
-msgstr ""
-"Element ne implementira upravljanje ovim tokom podataka. Molim prijavite "
-"grešku."
-
-msgid "Could not determine type of stream."
-msgstr "Ne mogu odrediti vrstu toka podataka."
-
-msgid "The stream is of a different type than handled by this element."
-msgstr ""
-"Tok podataka je različite vrste od onoga kojim može upravljati ovaj element."
-
-msgid "There is no codec present that can handle the stream's type."
-msgstr "Nije prisutan kodek koji može upravljati ovom vrstom toka podataka."
-
-msgid "Could not decode stream."
-msgstr "Ne mogu dekodirati tok podataka."
-
-msgid "Could not encode stream."
-msgstr "Ne mogu kodirati tok podataka."
-
-msgid "Could not demultiplex stream."
-msgstr "Ne mogu demultipleksirati tok podataka."
-
-msgid "Could not multiplex stream."
-msgstr "Ne mogu multipleksirati tok podataka."
-
-msgid "The stream is in the wrong format."
-msgstr "Tok podataka je u krivom obliku."
-
-msgid "The stream is encrypted and decryption is not supported."
-msgstr "Tok podataka je šifriran i dešifriranje nije podržano."
-
-msgid ""
-"The stream is encrypted and can't be decrypted because no suitable key has "
-"been supplied."
-msgstr ""
-"Tok podataka je šifriran i ne može se dešifrirati jer nije naveden "
-"odgovarajući ključ."
-
-#, c-format
-msgid "No error message for domain %s."
-msgstr "Nema poruke o grešci za domenu %s."
-
-#, c-format
-msgid "No standard error message for domain %s and code %d."
-msgstr "Nema standardne poruke o grešci za domenu %s i kod %d."
-
-msgid "Selected clock cannot be used in pipeline."
-msgstr "Odabrani takt se ne može koristiti u cjevovodu."
-
-msgid "title"
-msgstr "naslov"
-
-msgid "commonly used title"
-msgstr "uobičajeno korišteni naslov"
-
-msgid "title sortname"
-msgstr "naslov (razvrstavanje)"
-
-msgid "commonly used title for sorting purposes"
-msgstr "uobičajeno korišteni naslov (koristi se za razvrstavanje)"
-
-msgid "artist"
-msgstr "izvođač"
-
-msgid "person(s) responsible for the recording"
-msgstr "osoba odgovorna za snimku"
-
-msgid "artist sortname"
-msgstr "izvođač (razvrstavanje)"
-
-msgid "person(s) responsible for the recording for sorting purposes"
-msgstr "osoba odgovorna za snimku (koristi se za razvrstavanje)"
-
-msgid "album"
-msgstr "album"
-
-msgid "album containing this data"
-msgstr "album koji sadrži ove podatke"
-
-msgid "album sortname"
-msgstr "album (razvrstavanje)"
-
-msgid "album containing this data for sorting purposes"
-msgstr "album koji sadrži ove podatke (koristi se za razvrstavanje)"
-
-msgid "album artist"
-msgstr "izvođač albuma"
-
-msgid "The artist of the entire album, as it should be displayed"
-msgstr "Izvođač cijelog albuma (koristi se za prikaz)"
-
-msgid "album artist sortname"
-msgstr "izvođač albuma (razvrstavanje)"
-
-msgid "The artist of the entire album, as it should be sorted"
-msgstr "Izvođač cijelog albuma (koristi se za razvrstavanje)"
-
-msgid "date"
-msgstr "datum"
-
-msgid "date the data was created (as a GDate structure)"
-msgstr "datum stvaranja podataka (u obliku GDate strukture)"
-
-msgid "datetime"
-msgstr "datumvrijeme"
-
-msgid "date and time the data was created (as a GstDateTime structure)"
-msgstr "datum i vrijeme stvaranja podataka (u obliku GstDateTime strukture)"
-
-msgid "genre"
-msgstr "žanr"
-
-msgid "genre this data belongs to"
-msgstr "žanr kojem pripadaju podaci"
-
-msgid "comment"
-msgstr "komentar"
-
-msgid "free text commenting the data"
-msgstr "slobodan tekst koji opisuje podatke"
-
-msgid "extended comment"
-msgstr "prošireni komentar"
-
-msgid "free text commenting the data in key=value or key[en]=comment form"
-msgstr ""
-"slobodan tekst koji opisuje podatke u obliku ključ=vrijednost ili ključ[en]"
-"=komentar"
-
-msgid "track number"
-msgstr "broj pjesme"
-
-msgid "track number inside a collection"
-msgstr "broj pjesme u kolekciji"
-
-msgid "track count"
-msgstr "broj pjesama"
-
-msgid "count of tracks inside collection this track belongs to"
-msgstr "broj pjesama u kolekciji kojoj pripada ova pjesma"
-
-msgid "disc number"
-msgstr "broj diska"
-
-msgid "disc number inside a collection"
-msgstr "broj diska u kolekciji"
-
-msgid "disc count"
-msgstr "broj diskova"
-
-msgid "count of discs inside collection this disc belongs to"
-msgstr "broj diskova u kolekciji kojoj pripada ovaj disk"
-
-msgid "location"
-msgstr "mjesto"
-
-msgid ""
-"Origin of media as a URI (location, where the original of the file or stream "
-"is hosted)"
-msgstr ""
-"Podrijetlo medija kao URI (mjesto, gdje se nalazi izvor datoteke ili toka "
-"podataka)"
-
-msgid "homepage"
-msgstr "početna stranica"
-
-msgid "Homepage for this media (i.e. artist or movie homepage)"
-msgstr ""
-"Početna stranica ovog medija (npr. početna stranica izvođača ili filma)"
-
-msgid "description"
-msgstr "opis"
-
-msgid "short text describing the content of the data"
-msgstr "kratak tekst koji opisuje sadržaj podataka"
-
-msgid "version"
-msgstr "inačica"
-
-msgid "version of this data"
-msgstr "inačica ovih podataka"
-
-msgid "ISRC"
-msgstr "ISRC"
-
-msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
-msgstr ""
-"International Standard Recording Code - pogledajte http://www.ifpi.org/isrc/"
-
-msgid "organization"
-msgstr "organizacija"
-
-msgid "copyright"
-msgstr "copyright"
-
-msgid "copyright notice of the data"
-msgstr "napomena o autorskim pravima podataka"
-
-msgid "copyright uri"
-msgstr "copyright uri"
-
-msgid "URI to the copyright notice of the data"
-msgstr "URI za napomenu o autorskim pravima podataka"
-
-msgid "encoded by"
-msgstr "kodirao"
-
-msgid "name of the encoding person or organization"
-msgstr "ime osobe ili organizacije koja je kodirala"
-
-msgid "contact"
-msgstr "kontakt"
-
-msgid "contact information"
-msgstr "informacije o kontaktu"
-
-msgid "license"
-msgstr "licenca"
-
-msgid "license of data"
-msgstr "licenca podataka"
-
-msgid "license uri"
-msgstr "uri licence"
-
-msgid "URI to the license of the data"
-msgstr "URI za licencu podataka"
-
-msgid "performer"
-msgstr "izvođač"
-
-msgid "person(s) performing"
-msgstr "osoba koja izvodi"
-
-msgid "composer"
-msgstr "skladatelj"
-
-msgid "person(s) who composed the recording"
-msgstr "osoba koja je skladala snimku"
-
-msgid "duration"
-msgstr "trajanje"
-
-msgid "length in GStreamer time units (nanoseconds)"
-msgstr "duljina u GStreamer vremenskim jedinicama (nanosekunde)"
-
-msgid "codec"
-msgstr "kodek"
-
-msgid "codec the data is stored in"
-msgstr "kodek u kojem su spremljeni podaci"
-
-msgid "video codec"
-msgstr "video kodek"
-
-msgid "codec the video data is stored in"
-msgstr "kodek u kojem su spremljeni video podaci"
-
-msgid "audio codec"
-msgstr "audio kodek"
-
-msgid "codec the audio data is stored in"
-msgstr "kodek u kojem su spremljeni audio podaci"
-
-msgid "subtitle codec"
-msgstr "kodek titlova"
-
-msgid "codec the subtitle data is stored in"
-msgstr "kodek u kojem su spremljeni podaci o titlovima"
-
-msgid "container format"
-msgstr "oblik spremnika"
-
-msgid "container format the data is stored in"
-msgstr "oblik spremnika u kojem su spremljeni podaci"
-
-msgid "bitrate"
-msgstr "brzina"
-
-msgid "exact or average bitrate in bits/s"
-msgstr "točna ili prosječna brzina u bitovima po sekundi"
-
-msgid "nominal bitrate"
-msgstr "nazivna brzina"
-
-msgid "nominal bitrate in bits/s"
-msgstr "nazivna brzina u bitovima po sekundi"
-
-msgid "minimum bitrate"
-msgstr "najmanja brzina"
-
-msgid "minimum bitrate in bits/s"
-msgstr "najmanja brzina u bitovima po sekundi"
-
-msgid "maximum bitrate"
-msgstr "najveća brzina"
-
-msgid "maximum bitrate in bits/s"
-msgstr "najveća brzina u bitovima po sekundi"
-
-msgid "encoder"
-msgstr "koder"
-
-msgid "encoder used to encode this stream"
-msgstr "koder korišten za kodiranje ovog toka podataka"
-
-msgid "encoder version"
-msgstr "inačica kodera"
-
-msgid "version of the encoder used to encode this stream"
-msgstr "inačica kodera korištenog za kodiranje ovog toka podataka"
-
-msgid "serial"
-msgstr "serijski broj"
-
-msgid "serial number of track"
-msgstr "serijski broj pjesme"
-
-msgid "replaygain track gain"
-msgstr "pojačanje reprodukcije pjesme"
-
-msgid "track gain in db"
-msgstr "pojačanje pjesme u decibelima"
-
-msgid "replaygain track peak"
-msgstr "vršno pojačanje reprodukcije pjesme"
-
-msgid "peak of the track"
-msgstr "najveća vrijednost pojačanja pjesme"
-
-msgid "replaygain album gain"
-msgstr "pojačanje reprodukcije albuma"
-
-msgid "album gain in db"
-msgstr "pojačanje albuma u decibelima"
-
-msgid "replaygain album peak"
-msgstr "vršno pojačanje reprodukcije albuma"
-
-msgid "peak of the album"
-msgstr "najveća vrijednost pojačanja albuma"
-
-msgid "replaygain reference level"
-msgstr "referentna razina pojačanja reprodukcije"
-
-msgid "reference level of track and album gain values"
-msgstr "referentna razina vrijednosti pojačanja pjesme i albuma"
-
-msgid "language code"
-msgstr "jezični kod"
-
-#, fuzzy
-msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr "jezični kod za ovaj tok podataka, kompatibilan s ISO-639-1"
-
-#, fuzzy
-msgid "language name"
-msgstr "jezični kod"
-
-msgid "freeform name of the language this stream is in"
-msgstr ""
-
-msgid "image"
-msgstr "slika"
-
-msgid "image related to this stream"
-msgstr "slika povezana s ovim tokom podataka"
-
-#. TRANSLATORS: 'preview image' = image that shows a preview of the full image
-msgid "preview image"
-msgstr "pregledna slika"
-
-msgid "preview image related to this stream"
-msgstr "pregledna slika povezana s ovim tokom podataka"
-
-msgid "attachment"
-msgstr "prilog"
-
-msgid "file attached to this stream"
-msgstr "datoteka priložena ovom toku podataka"
-
-msgid "beats per minute"
-msgstr "otkucaja u minuti"
-
-msgid "number of beats per minute in audio"
-msgstr "broj otkucaja u minuti zvučnog zapisa"
-
-msgid "keywords"
-msgstr "ključne riječi"
-
-msgid "comma separated keywords describing the content"
-msgstr "zarezima odvojene ključne riječi koje opisuju sadržaj"
-
-msgid "geo location name"
-msgstr "geolokacijsko ime"
-
-msgid ""
-"human readable descriptive location of where the media has been recorded or "
-"produced"
-msgstr "ljudima čitljivo opisno mjesto gdje medij snimljen ili produciran"
-
-msgid "geo location latitude"
-msgstr "geolokacijska zemljopisna širina"
-
-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 ""
-"zemljopisna širina mjesta gdje je medij snimljen ili produciran, u "
-"stupnjevima prema WGS84 (nula na ekvatoru, negativne vrijednosti za južnu "
-"polutku)"
-
-msgid "geo location longitude"
-msgstr "geolokacijska zemljopisna dužina"
-
-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 ""
-"zemljopisna dužina mjesta gdje je medij snimljen ili produciran, u "
-"stupnjevima prema WGS84 (nula na nultom meridijanu Greenwich/UK, negativne "
-"vrijednosti za zapadne dužine)"
-
-msgid "geo location elevation"
-msgstr "geolokacijska visina"
-
-msgid ""
-"geo elevation of where the media has been recorded or produced in meters "
-"according to WGS84 (zero is average sea level)"
-msgstr ""
-"nadmorska visina mjesta gdje je medij snimljen ili produciran, u metrima "
-"prema WGS84 (nula je prosječna razina mora)"
-
-msgid "geo location country"
-msgstr "geolokacijska država"
-
-msgid "country (english name) where the media has been recorded or produced"
-msgstr "država (englesko ime) gdje je medij snimljen ili produciran"
-
-msgid "geo location city"
-msgstr "geolokacijski grad"
-
-msgid "city (english name) where the media has been recorded or produced"
-msgstr "grad (englesko ime) gdje je medij snimljen ili produciran"
-
-msgid "geo location sublocation"
-msgstr "geolokacijska podlokacija"
-
-#, fuzzy
-msgid ""
-"a location within a city where the media has been produced or created (e.g. "
-"the neighborhood)"
-msgstr ""
-"mjesto u gradu gdje je medij snimljen ili produciran (npr. gradska četvrt)"
-
-msgid "geo location horizontal error"
-msgstr "geolokacijska vodoravna greška"
-
-msgid "expected error of the horizontal positioning measures (in meters)"
-msgstr "očekivana greška mjere vodoravnog položaja (u metrima)"
-
-msgid "geo location movement speed"
-msgstr "geolokacijska brzina pomicanja"
-
-msgid ""
-"movement speed of the capturing device while performing the capture in m/s"
-msgstr "brzina pomicanja uređaja za snimanje pri snimanju, u m/s"
-
-msgid "geo location movement direction"
-msgstr "geolokacijski smjer pomicanja"
-
-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 ""
-"označava smjer pomicanja uređaja koji snima medij. Prikazan je u stupnjevima "
-"u prikazu s decimalnim zarezom, 0 označava zemljopisni sjever i povećava se "
-"u smjeru kazaljke na satu"
-
-msgid "geo location capture direction"
-msgstr "geolokacijski smjer snimanja"
-
-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 ""
-"označava usmjerenje uređaja koji snima medij. Prikazan je u stupnjevima u "
-"prikazu s decimalnim zarezom, 0 označava zemljopisni sjever i povećava se u "
-"smjeru kazaljke na satu"
-
-#. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
-msgid "show name"
-msgstr "ime emisije"
-
-msgid "Name of the tv/podcast/series show the media is from"
-msgstr "Ime serije ili tv/podcast emisije iz koje je medij"
-
-#. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-msgid "show sortname"
-msgstr "ime emisije (razvrstavanje)"
-
-msgid ""
-"Name of the tv/podcast/series show the media is from, for sorting purposes"
-msgstr ""
-"Ime serije ili tv/podcast emisije iz koje je medij (koristi se za "
-"razvrstavanje)"
-
-msgid "episode number"
-msgstr "broj epizode"
-
-msgid "The episode number in the season the media is part of"
-msgstr "Broj epizode u sezoni iz koje je medij"
-
-msgid "season number"
-msgstr "broj sezone"
-
-msgid "The season number of the show the media is part of"
-msgstr "Broj sezone emisije iz koje je medij"
-
-msgid "lyrics"
-msgstr "tekstovi"
-
-msgid "The lyrics of the media, commonly used for songs"
-msgstr "Tekstovi medija, najčešće korišteno u pjesmama"
-
-msgid "composer sortname"
-msgstr "skladatelj (razvrstavanje)"
-
-msgid "person(s) who composed the recording, for sorting purposes"
-msgstr "osoba koja je skladala snimku (koristi se za razvrstavanje)"
-
-msgid "grouping"
-msgstr "grupiranje"
-
-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 ""
-"Grupira povezane medije koji se protežu kroz više pjesama, kao npr. "
-"različiti stavci koncerta. To je viša razina od pjesme, ali niža od albuma"
-
-msgid "user rating"
-msgstr "korisnička ocjena"
-
-msgid ""
-"Rating attributed by a user. The higher the rank, the more the user likes "
-"this media"
-msgstr ""
-"Ocjena koju je dodijelio korisnik. Što je veća, korisniku se više sviđa medij"
-
-msgid "device manufacturer"
-msgstr "proizvođač uređaja"
-
-msgid "Manufacturer of the device used to create this media"
-msgstr "Proizvođač uređaja kojim je napravljen medij"
-
-msgid "device model"
-msgstr "model uređaja"
-
-msgid "Model of the device used to create this media"
-msgstr "Model uređaja korišten za izradu medija"
-
-msgid "application name"
-msgstr "ime programa"
-
-msgid "Application used to create the media"
-msgstr "Program korišten za izradu medija"
-
-msgid "application data"
-msgstr "programski podaci"
-
-msgid "Arbitrary application data to be serialized into the media"
-msgstr "Proizvoljni programski podaci uključeni u medij"
-
-msgid "image orientation"
-msgstr "orijentacija slike"
-
-msgid "How the image should be rotated or flipped before display"
-msgstr "Kako se slika treba okrenuti ili zrcaliti prije prikaza"
-
-msgid ", "
-msgstr ", "
-
-#, c-format
-msgid "ERROR: from element %s: %s\n"
-msgstr "GREŠKA: iz elementa %s: %s\n"
-
-#, c-format
-msgid ""
-"Additional debug info:\n"
-"%s\n"
-msgstr ""
-"Dodatne informacije za debugiranje:\n"
-"%s\n"
-
-#, c-format
-msgid "specified empty bin \"%s\", not allowed"
-msgstr ""
-
-#, c-format
-msgid "no bin \"%s\", skipping"
-msgstr ""
-
-#, c-format
-msgid "no property \"%s\" in element \"%s\""
-msgstr "nema svojstva „%s” u elementu „%s”"
-
-#, c-format
-msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
-msgstr "ne mogu postaviti svojstvo „%s” u elementu „%s” u „%s”"
-
-#, c-format
-msgid "could not link %s to %s"
-msgstr "ne mogu povezati %s na %s"
-
-#, c-format
-msgid "no element \"%s\""
-msgstr "nema elementa „%s”"
-
-#, c-format
-msgid "could not parse caps \"%s\""
-msgstr "ne mogu analizirati mogućnost „%s”"
-
-msgid "link without source element"
-msgstr "veza bez izvornog elementa"
-
-msgid "link without sink element"
-msgstr "veza bez prijamnog elementa"
-
-#, c-format
-msgid "no source element for URI \"%s\""
-msgstr "nema izvornog elementa za URI „%s”"
-
-#, c-format
-msgid "no element to link URI \"%s\" to"
-msgstr "nema elementa na koji će se povezati URI „%s”"
-
-#, c-format
-msgid "no sink element for URI \"%s\""
-msgstr "nema prijamnog elementa za URI „%s”"
-
-#, c-format
-msgid "could not link sink element for URI \"%s\""
-msgstr "ne mogu povezati prijamni element za URI „%s”"
-
-msgid "empty pipeline not allowed"
-msgstr "prazan cjevovod nije dozvoljen"
-
-msgid "Internal clock error."
-msgstr "Greška unutrašnjeg takta."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Greška unutrašnjeg toka podataka."
-
-msgid "A lot of buffers are being dropped."
-msgstr "Mnogo međuspremnika je ispušteno."
-
-msgid "Internal data flow problem."
-msgstr "Problem unutrašnjeg toka podataka."
-
-msgid "Internal data stream error."
-msgstr "Greška unutrašnjeg toka podataka."
-
-msgid "Filter caps"
-msgstr "Filtriraj mogućnosti"
-
-msgid ""
-"Restrict the possible allowed capabilities (NULL means ANY). Setting this "
-"property takes a reference to the supplied GstCaps object."
-msgstr ""
-"Ograniči dozvoljene mogućnosti (NULL znači ANY). Postavljanje ovog svojstva "
-"prosljeđuje referencu navedenom GstCaps objektu."
-
-msgid "No file name specified for writing."
-msgstr "Nije navedena datoteka za pisanje."
-
-#, c-format
-msgid "Could not open file \"%s\" for writing."
-msgstr "Ne mogu otvoriti datoteku „%s” za pisanje."
-
-#, c-format
-msgid "Error closing file \"%s\"."
-msgstr "Greška zatvaranja datoteke „%s”."
-
-#, c-format
-msgid "Error while seeking in file \"%s\"."
-msgstr "Greška pri traženju u datoteci „%s”."
-
-#, c-format
-msgid "Error while writing to file \"%s\"."
-msgstr "Greška pri pisanju u datoteku „%s”."
-
-msgid "No file name specified for reading."
-msgstr "Nije navedena datoteka za čitanje."
-
-#, c-format
-msgid "Could not open file \"%s\" for reading."
-msgstr "Ne mogu otvoriti datoteku „%s” za čitanje."
-
-#, c-format
-msgid "Could not get info on \"%s\"."
-msgstr "Ne mogu dobiti podatke o „%s”."
-
-#, c-format
-msgid "\"%s\" is a directory."
-msgstr "„%s” je direktorij."
-
-#, c-format
-msgid "File \"%s\" is a socket."
-msgstr "Datoteka „%s” je utičnica."
-
-msgid "Failed after iterations as requested."
-msgstr "Neuspjeh nakon iteracija kao što je traženo."
-
-msgid "No Temp directory specified."
-msgstr "Nije naveden privremeni direktorij."
-
-#, c-format
-msgid "Could not create temp file \"%s\"."
-msgstr "Ne mogu napraviti privremenu datoteku „%s”."
-
-msgid "Error while writing to download file."
-msgstr "Greška pri pisanju u preuzetu datoteku."
-
-msgid "caps"
-msgstr "mogućnosti"
-
-msgid "detected capabilities in stream"
-msgstr "otkrivene mogućnosti u nizu podataka"
-
-msgid "minimum"
-msgstr "najmanje"
-
-msgid "force caps"
-msgstr "prisili mogućnosti"
-
-msgid "force caps without doing a typefind"
-msgstr "prisiljava mogućnosti bez traženja vrste"
-
-msgid "Stream contains no data."
-msgstr "Tok podataka ne sadrži podatke."
-
-msgid "Implemented Interfaces:\n"
-msgstr "Implementirana sučelja:\n"
-
-msgid "readable"
-msgstr "čitljivo"
-
-msgid "writable"
-msgstr "zapisivo"
-
-msgid "controllable"
-msgstr "upravljivo"
-
-msgid "changeable in NULL, READY, PAUSED or PLAYING state"
-msgstr "promjenjivo u stanja NULL, READY, PAUSED ili PLAYING"
-
-msgid "changeable only in NULL, READY or PAUSED state"
-msgstr "promjenjivo samo u stanja NULL, READY ili PAUSED"
-
-msgid "changeable only in NULL or READY state"
-msgstr "promjenjivo samo u stanja NULL ili READY"
-
-msgid "Blacklisted files:"
-msgstr "Zabranjene datoteke:"
-
-msgid "Total count: "
-msgstr "Ukupan broj: "
-
-#, c-format
-msgid "%d blacklisted file"
-msgid_plural "%d blacklisted files"
-msgstr[0] "%d zabranjena datoteka"
-msgstr[1] "%d zabranjene datoteke"
-msgstr[2] "%d zabranjenih datoteka"
-
-#, c-format
-msgid "%d plugin"
-msgid_plural "%d plugins"
-msgstr[0] "%d priključak"
-msgstr[1] "%d priključka"
-msgstr[2] "%d priključaka"
-
-#, c-format
-msgid "%d blacklist entry"
-msgid_plural "%d blacklist entries"
-msgstr[0] "%d stavka popisa zabrana"
-msgstr[1] "%d stavke popisa zabrana"
-msgstr[2] "%d stavki popisa zabrana"
-
-#, c-format
-msgid "%d feature"
-msgid_plural "%d features"
-msgstr[0] "%d značajka"
-msgstr[1] "%d značajke"
-msgstr[2] "%d značajki"
-
-msgid "Print all elements"
-msgstr "Ispiši sve elemente"
-
-msgid "Print list of blacklisted files"
-msgstr "Ispiši popis zabranjenih datoteka"
-
-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 ""
-"Ispiši strojno čitljiv popis značajki navedenog priključka ili svih "
-"priključaka.\n"
-"                                Korisno pri povezivanju s vanjskim "
-"mehanizmima automatske instalacije priključaka"
-
-msgid "List the plugin contents"
-msgstr "Ispiši sadržaj priključka"
-
-msgid "Check if the specified element or plugin exists"
-msgstr ""
-
-msgid ""
-"When checking if an element or plugin exists, also check that its version is "
-"at least the version specified"
-msgstr ""
-
-msgid "Print supported URI schemes, with the elements that implement them"
-msgstr "Ispiši podržane URI sheme, s elementima koji ih implementiraju"
-
-#, c-format
-msgid "Could not load plugin file: %s\n"
-msgstr "Ne mogu učitati datoteku priključka: %s\n"
-
-#, c-format
-msgid "No such element or plugin '%s'\n"
-msgstr "Nema takvog elementa ili priključka „%s”\n"
-
-msgid "Index statistics"
-msgstr "Statistike indeksa"
-
-#, c-format
-msgid "Got message #%u from element \"%s\" (%s): "
-msgstr "Dobio poruku #%u iz elementa „%s” (%s): "
-
-#, c-format
-msgid "Got message #%u from pad \"%s:%s\" (%s): "
-msgstr "Dobio poruku #%u iz podloge „%s:%s” (%s): "
-
-#, c-format
-msgid "Got message #%u from object \"%s\" (%s): "
-msgstr "Dobio poruku #%u iz objekta „%s” (%s): "
-
-#, c-format
-msgid "Got message #%u (%s): "
-msgstr "Dobio poruku #%u (%s): "
-
-#, c-format
-msgid "Got EOS from element \"%s\".\n"
-msgstr "Dobio EOS iz elementa „%s”.\n"
-
-#, c-format
-msgid "FOUND TAG      : found by element \"%s\".\n"
-msgstr "PRONAĐENA OZNAKA: pronašao element „%s”.\n"
-
-#, c-format
-msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
-msgstr "PRONAĐENA OZNAKA: pronašla podloga „%s:%s”.\n"
-
-#, c-format
-msgid "FOUND TAG      : found by object \"%s\".\n"
-msgstr "PRONAĐENA OZNAKA: pronašao objekt „%s”.\n"
-
-msgid "FOUND TAG\n"
-msgstr "PRONAĐENA OZNAKA\n"
-
-#, fuzzy, c-format
-msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "PRONAĐENA OZNAKA: pronašao element „%s”.\n"
-
-#, fuzzy, c-format
-msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "PRONAĐENA OZNAKA: pronašao objekt „%s”.\n"
-
-#, fuzzy
-msgid "FOUND TOC\n"
-msgstr "PRONAĐENA OZNAKA\n"
-
-#, c-format
-msgid ""
-"INFO:\n"
-"%s\n"
-msgstr ""
-"INFORMACIJE:\n"
-"%s\n"
-
-#, c-format
-msgid "WARNING: from element %s: %s\n"
-msgstr "UPOZORENJE: iz elementa %s: %s\n"
-
-msgid "Prerolled, waiting for buffering to finish...\n"
-msgstr ""
-
-msgid "buffering..."
-msgstr "spremam u međuspremnik..."
-
-msgid "Done buffering, setting pipeline to PLAYING ...\n"
-msgstr "Gotovo spremanje u međuspremnik, postavljam cjevovod u PLAYING ...\n"
-
-msgid "Buffering, setting pipeline to PAUSED ...\n"
-msgstr "Spremam u međuspremnik, postavljam cjevovod u PAUSED ...\n"
-
-msgid "Redistribute latency...\n"
-msgstr "Preraspodjeljujem kašnjenje...\n"
-
-#, c-format
-msgid "Setting state to %s as requested by %s...\n"
-msgstr "Postavljam stanje u %s kao što traži %s...\n"
-
-msgid "Interrupt: Stopping pipeline ...\n"
-msgstr "Prekid: Zaustavljam cjevovod ...\n"
-
-#, fuzzy, c-format
-msgid "Missing element: %s\n"
-msgstr "nema elementa „%s”"
-
-msgid "Output tags (also known as metadata)"
-msgstr "Izlazne oznake (poznate i kao metapodaci)"
-
-msgid "Output TOC (chapters and editions)"
-msgstr ""
-
-msgid "Output status information and property notifications"
-msgstr "Informacije o izlaznom stanju i obavijesti o svojstvima"
-
-msgid "Do not print any progress information"
-msgstr "Ne ispisuj informacije o napretku"
-
-msgid "Output messages"
-msgstr "Izlazne poruke"
-
-msgid "Do not output status information of TYPE"
-msgstr "Ne ispisuj informacije navedene VRSTE o izlaznom stanju"
-
-msgid "TYPE1,TYPE2,..."
-msgstr "VRSTA1,VRSTA2,..."
-
-msgid "Do not install a fault handler"
-msgstr "Nemoj instalirati rukovatelj grešaka"
-
-msgid "Force EOS on sources before shutting the pipeline down"
-msgstr "Prisili EOS na izvorima prije zatvaranja cjevovoda"
-
-msgid "Gather and print index statistics"
-msgstr "Skupi i ispiši statistike indeksa"
-
-#, c-format
-msgid "ERROR: pipeline could not be constructed: %s.\n"
-msgstr "GREŠKA: ne mogu napraviti cjevovod: %s.\n"
-
-msgid "ERROR: pipeline could not be constructed.\n"
-msgstr "GREŠKA: ne mogu napraviti cjevovod.\n"
-
-#, c-format
-msgid "WARNING: erroneous pipeline: %s\n"
-msgstr "UPOZORENJE: cjevovod sklon greškama: %s\n"
-
-msgid "ERROR: the 'pipeline' element wasn't found.\n"
-msgstr "GREŠKA: cjevovodni („pipeline”) element nije pronađen.\n"
-
-msgid "Setting pipeline to PAUSED ...\n"
-msgstr "Postavljam cjevovod u PAUSED ...\n"
-
-msgid "ERROR: Pipeline doesn't want to pause.\n"
-msgstr "GREŠKA: Cjevovod ne želi pauzirati.\n"
-
-msgid "Pipeline is live and does not need PREROLL ...\n"
-msgstr "Cjevovod je živ i ne traži PREROLL ...\n"
-
-msgid "Pipeline is PREROLLING ...\n"
-msgstr ""
-
-msgid "ERROR: pipeline doesn't want to preroll.\n"
-msgstr ""
-
-msgid "Pipeline is PREROLLED ...\n"
-msgstr ""
-
-msgid "Setting pipeline to PLAYING ...\n"
-msgstr "Postavljam cjevovod u PLAYING ...\n"
-
-msgid "ERROR: pipeline doesn't want to play.\n"
-msgstr "GREŠKA: cjevovod ne želi reproducirati.\n"
-
-msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
-msgstr "EOS pri zatvaranju omogućen -- Prisiljavam EOS na cjevovodu\n"
-
-#, fuzzy
-msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS pri zatvaranju omogućen -- Prisiljavam EOS na cjevovodu\n"
-
-msgid "Waiting for EOS...\n"
-msgstr "Čekam EOS...\n"
-
-msgid "EOS received - stopping pipeline...\n"
-msgstr "EOS primljen - zaustavljam cjevovod...\n"
-
-#, fuzzy
-msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Prekid: Zaustavljam cjevovod ...\n"
-
-msgid "An error happened while waiting for EOS\n"
-msgstr "Dogodila se greška pri čekanju EOS-a\n"
-
-msgid "Execution ended after %"
-msgstr "Izvršavanje završilo nakon %"
-
-msgid "Setting pipeline to READY ...\n"
-msgstr "Postavljam cjevovod u READY ...\n"
-
-msgid "Setting pipeline to NULL ...\n"
-msgstr "Postavljam cjevovod u NULL ...\n"
-
-msgid "Freeing pipeline ...\n"
-msgstr "Oslobađam cjevovod ...\n"
-
-#~ msgid "maximum"
-#~ msgstr "najviše"
-
-#~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
-#~ msgstr ""
-#~ "Uporaba: gst-xmllaunch <datoteka.xml> [ element."
-#~ "svojstvo=vrijednost ... ]\n"
-
-#~ msgid "ERROR: parse of xml file '%s' failed.\n"
-#~ msgstr "GREŠKA: analiza xml datoteke „%s” nije uspjela.\n"
-
-#~ msgid "ERROR: no toplevel pipeline element in file '%s'.\n"
-#~ msgstr "GREŠKA: ne postoji vršni element cjevovoda u datoteci „%s”.\n"
-
-#~ msgid "WARNING: only one toplevel element is supported at this time.\n"
-#~ msgstr "UPOZORENJE: trenutno je podržan samo jedan vršni element.\n"
-
-#~ msgid "ERROR: could not parse command line argument %d: %s.\n"
-#~ msgstr "GREŠKA: ne mogu analizirati argument naredbenog retka %d: %s.\n"
-
-#~ msgid "WARNING: element named '%s' not found.\n"
-#~ msgstr "UPOZORENJE: element „%s” nije pronađen.\n"
-
-#~ msgid "Save xml representation of pipeline to FILE and exit"
-#~ msgstr "Spremi xml prikaz cjevovoda u DATOTEKU i izađi"
-
-#~ msgid "FILE"
-#~ msgstr "DATOTEKA"
-
-#~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
-#~ msgstr "Nemoj instalirati rukovatelj signala za SIGUSR1 i SIGUSR2"
-
-#~ msgid "Print alloc trace (if enabled at compile time)"
-#~ msgstr "Ispiši alloc praćenje (ako je omogućeno pri kompajliranju)"
diff --git a/po/hu.gmo b/po/hu.gmo
index aabab2f..fad1883 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 83124ba..3c7d7ea 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -2,20 +2,20 @@
 # Copyright (c) 2006 Canonical Ltd, and Rosetta Contributors
 # This file is distributed under the same license as the gstreamer package.
 #
-# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2010, 2012.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2010.
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-11-29 14:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: KBabel 1.11.4\n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
 msgid "Print the GStreamer version"
@@ -113,8 +113,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Belső GStreamer hiba: szálprobléma."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "GStreamer hiba: megállapodási probléma."
+msgstr "Belső GStreamer hiba: megállapodási probléma."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Belső GStreamer hiba: eseményprobléma."
@@ -131,8 +132,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "A GStreamer telepítésből hiányzik egy bővítmény."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "GStreamer hiba: óraprobléma."
+msgstr "Belső GStreamer hiba: óraprobléma."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -247,6 +249,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "A kijelölt óra nem használható adatcsatornában."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "cím"
 
@@ -324,8 +330,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"az adatokhoz fűzött szabad szöveges megjegyzés kulcs=érték vagy kulcs[hu]"
-"=megjegyzés formában"
+"az adatokhoz fűzött szabad szöveges megjegyzés kulcs=érték vagy "
+"kulcs[hu]=megjegyzés formában"
 
 msgid "track number"
 msgstr "dalsorszám"
@@ -402,11 +408,12 @@
 msgid "URI to the copyright notice of the data"
 msgstr "Az adatok védjegymegjegyzésének URI címe"
 
+#, fuzzy
 msgid "encoded by"
-msgstr "kódolta"
+msgstr "kódoló"
 
 msgid "name of the encoding person or organization"
-msgstr "a kódoló személy vagy szervezet"
+msgstr ""
 
 msgid "contact"
 msgstr "névjegy"
@@ -549,15 +556,16 @@
 msgid "language code"
 msgstr "nyelvi kód"
 
+#, fuzzy
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr ""
-"az adatfolyam ISO-639-1 vagy ISO-639-2 szabványnak megfelelő nyelvi kódja"
+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 "az adatfolyam nyelvének szabad formátumú neve"
+msgstr ""
 
 msgid "image"
 msgstr "kép"
@@ -649,6 +657,7 @@
 msgid "geo location sublocation"
 msgstr "földrajzi hely részhelye"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -786,6 +795,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "HIBA: a következő elemtől: %s: %s\n"
 
@@ -850,15 +867,6 @@
 msgid "empty pipeline not allowed"
 msgstr "üres adatcsatorna nem engedélyezett"
 
-msgid "Internal clock error."
-msgstr "Belső órahiba."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Belső adatfolyam-hiba."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Rengetek puffer kerül eldobásra."
 
@@ -868,6 +876,15 @@
 msgid "Internal data stream error."
 msgstr "Belső adatfolyam-hiba."
 
+msgid "Internal data flow error."
+msgstr "Belső adatfolyam-hiba."
+
+msgid "Internal clock error."
+msgstr "Belső órahiba."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Képességek szűrése"
 
@@ -1018,14 +1035,12 @@
 msgstr "A bővítmény tartalmának felsorolása"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Ellenőrizze, hogy a megadott elem vagy bővítmény létezik-e"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Elem vagy bővítmény létezésének ellenőrzésekor azt is ellenőrizze, hogy a "
-"verziója legalább a megadott-e"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr "Támogatott URI sémák kiírása, az azokat megvalósító elemmel"
@@ -1039,7 +1054,7 @@
 msgstr "Nincs ilyen elem vagy bővítmény: „%s”\n"
 
 msgid "Index statistics"
-msgstr "Indexstatisztika"
+msgstr ""
 
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
@@ -1076,16 +1091,17 @@
 msgid "FOUND TAG\n"
 msgstr "CÍMKE MEGTALÁLVA\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "TARTALOMJEGYZÉK MEGTALÁLVA: a(z) „%s” elem által.\n"
+msgstr "CÍMKE MEGTALÁLVA: a(z) „%s” elem által.\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "TARTALOMJEGYZÉK MEGTALÁLVA: a(z) „%s” objektum által.\n"
+msgstr "CÍMKE MEGTALÁLVA: a(z) „%s” objektum által.\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "TARTALOMJEGYZÉK MEGTALÁLVA\n"
+msgstr "CÍMKE MEGTALÁLVA\n"
 
 #, c-format
 msgid ""
@@ -1102,6 +1118,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Előzetesen betöltve, várakozás a pufferelés befejeződésére…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Előzetesen betöltve, várakozás a pufferelés befejeződésére…\n"
+
 msgid "buffering..."
 msgstr "pufferelés…"
 
@@ -1122,14 +1142,22 @@
 msgstr "Megszakítás: Adatcsatorna leállítása…\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Hiányzó elem: „%s”\n"
+msgstr "nincs „%s” elem"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "FIGYELMEZTETÉS: a következő elemtől: %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Kimeneti címkék (metaadatok)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "TARTALOMJEGYZÉK (fejezetek és változatok) kiírása"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Kimeneti állapotinformációk és tulajdonság-értesítések"
@@ -1153,7 +1181,7 @@
 msgstr "EOS kényszerítése a forrásokra az adatcsatorna leállítása előtt"
 
 msgid "Gather and print index statistics"
-msgstr "Indexstatisztikák gyűjtése és kiírása"
+msgstr ""
 
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
@@ -1196,8 +1224,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "Leállításkor EOS engedélyezve – EOS kényszerítése az adatcsatornára\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "Leállításkor EOS engedélyezve – várakozás EOS-ra hiba után\n"
+msgstr "Leállításkor EOS engedélyezve – EOS kényszerítése az adatcsatornára\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Várakozás EOS-ra…\n"
@@ -1205,8 +1234,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS érkezett – adatcsatorna leállítása…\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Megszakítás az EOS-ra várakozás közben – adatcsatorna leállítása…\n"
+msgstr "Megszakítás: Adatcsatorna leállítása…\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Hiba történt az EOS-ra várakozáskor\n"
@@ -1223,8 +1253,8 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Adatcsatorna felszabadítása…\n"
 
-#~ msgid "maximum"
-#~ msgstr "maximum"
+#~ 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"
@@ -1253,6 +1283,3 @@
 
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Ne telepítsen szignálkezelőket a SIGUSR1 és SIGUSR2 szignálokhoz"
-
-#~ 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)"
diff --git a/po/id.gmo b/po/id.gmo
index e956db7..1f749f0 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index acf0539..3191b17 100644
--- a/po/id.po
+++ b/po/id.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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -250,6 +250,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Jam terpilih tak dapat digunakan dalam baris pipa."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Galat menulis tembolok registry ke %s: %s"
+
 msgid "title"
 msgstr "judul"
 
@@ -328,8 +332,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"teks bebas untuk mengomentari data dalam bentuk kunci=nilai atau kunci[en]"
-"=komentar"
+"teks bebas untuk mengomentari data dalam bentuk kunci=nilai atau "
+"kunci[en]=komentar"
 
 msgid "track number"
 msgstr "nomor jalur"
@@ -794,6 +798,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "GALAT: dari elemen %s: %s\n"
 
@@ -858,15 +870,6 @@
 msgid "empty pipeline not allowed"
 msgstr "baris pipa kosong tak diizinkan"
 
-msgid "Internal clock error."
-msgstr "Galat jam internal."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Galat aliran data internal."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Banyak penyangga yang didrop."
 
@@ -876,6 +879,15 @@
 msgid "Internal data stream error."
 msgstr "Galat arus data internal."
 
+msgid "Internal data flow error."
+msgstr "Galat aliran data internal."
+
+msgid "Internal clock error."
+msgstr "Galat jam internal."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filter huruf"
 
@@ -1107,6 +1119,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Pragulung, menunggu hingga penyangga selesai...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Pragulung, menunggu hingga penyangga selesai...\n"
+
 msgid "buffering..."
 msgstr "menyangga..."
 
@@ -1126,10 +1142,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Interupsi: Menghentikan baris pipa ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "tak ada elemen \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "PERINGATAN: dari elemen %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Tag keluaran (juga dikenal sebagai metadata)"
 
@@ -1230,9 +1254,6 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Membebaskan baris pipa ...\n"
 
-#~ msgid "maximum"
-#~ msgstr "maksimum"
-
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Penggunaan: gst-xmllaunch <berkas.xml> [ elemen.properti=nilai ... ]\n"
@@ -1265,9 +1286,6 @@
 #~ 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"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Galat memindai ulang registry %s: %s"
 
diff --git a/po/it.gmo b/po/it.gmo
index 3cee959..705fab4 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index ab94427..88cd74e 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -369,6 +369,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Il clock selezionato non può essere usato nella pipeline."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Errore nello scrivere la cache di registro su %s: %s"
+
 # questo e i successivi sono nome + descrizione delle proprietà
 # dei tag ID3 (o simili); le descrizioni per omogeneità iniziano
 # tutte con la lettera minuscola
@@ -451,8 +455,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"del testo libero a commento dei dati nella forma chiave=valore o chiave[it]"
-"=commento"
+"del testo libero a commento dei dati nella forma chiave=valore o "
+"chiave[it]=commento"
 
 msgid "track number"
 msgstr "numero di traccia"
@@ -945,6 +949,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERRORE: dall'elemento %s: %s\n"
 
@@ -1009,15 +1021,6 @@
 msgid "empty pipeline not allowed"
 msgstr "pipeline vuota non consentito"
 
-msgid "Internal clock error."
-msgstr "Errore interno di clock."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Errore interno nel flusso di dati."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Stanno per essere scartati molti buffer."
 
@@ -1027,6 +1030,15 @@
 msgid "Internal data stream error."
 msgstr "Errore interno nello stream di dati."
 
+msgid "Internal data flow error."
+msgstr "Errore interno nel flusso di dati."
+
+msgid "Internal clock error."
+msgstr "Errore interno di clock."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Caps di filtro"
 
@@ -1282,6 +1294,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Preroll eseguito, in attesa del riempimento buffer per completare...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Preroll eseguito, in attesa del riempimento buffer per completare...\n"
+
 msgid "buffering..."
 msgstr "riempimento buffer..."
 
@@ -1302,10 +1318,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Interrotto: arresto della pipeline ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "nessun elemento «%s»"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ATTENZIONE: dall'elemento %s: %s\n"
+
 # -t, --tags
 msgid "Output tags (also known as metadata)"
 msgstr "Stampa i tag (anche noti come metadati)"
@@ -1452,9 +1476,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Non installa i gestori di segnale per SIGUSR1 e SIGUSR2"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Errore nello scrivere la cache di registro su %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Errore nel ri-scansionare il registro %s: %s"
 
diff --git a/po/ja.gmo b/po/ja.gmo
index c936991..b4c834a 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 0c4a405..8d1207c 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -239,6 +239,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "%s へのレジストリキャッシュの書き込み中にエラーが発生しました: %s"
+
 msgid "title"
 msgstr "タイトル"
 
@@ -774,6 +778,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
@@ -838,15 +850,6 @@
 msgid "empty pipeline not allowed"
 msgstr "空のパイプラインは許可されません"
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "内部データフローエラー"
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -856,6 +859,15 @@
 msgid "Internal data stream error."
 msgstr "内部データストリームエラー"
 
+msgid "Internal data flow error."
+msgstr "内部データフローエラー"
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1084,6 +1096,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 #, fuzzy
 msgid "buffering..."
 msgstr "バッファリング中... %d  \n"
@@ -1106,10 +1121,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "割り込み: パイプラインを停止しています...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "エレメント \"%s\" がありません"
 
+#, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr ""
+
 msgid "Output tags (also known as metadata)"
 msgstr "タグ (メタデータ) を出力する"
 
@@ -1242,9 +1265,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "フォールトハンドラをインストールしない"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "%s へのレジストリキャッシュの書き込み中にエラーが発生しました: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "レジストリ %s の再スキャン中にエラーが発生しました: %s"
 
diff --git a/po/lt.gmo b/po/lt.gmo
index 7c287ac..adaca1a 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 492303c..fa7181c 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -248,6 +248,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Pasirinktas laikrodis negali būti naudojamas konvejeryje."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "pavadinimas"
 
@@ -327,8 +331,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"laisvas tekstas, apibūdinantis duomenis raktas=reikšmė arba raktas[en]"
-"=komentaras forma"
+"laisvas tekstas, apibūdinantis duomenis raktas=reikšmė arba "
+"raktas[en]=komentaras forma"
 
 msgid "track number"
 msgstr "takelio numeris"
@@ -796,6 +800,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "KLAIDA: iš elemento %s: %s\n"
 
@@ -860,15 +872,6 @@
 msgid "empty pipeline not allowed"
 msgstr "tuščias konvejeris neleidžiamas"
 
-msgid "Internal clock error."
-msgstr "Vidinė laikrodžio klaida."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Vidinė duomenų tėkmės klaida."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Atlaisvinama daug buferių."
 
@@ -878,6 +881,15 @@
 msgid "Internal data stream error."
 msgstr "Vidinė duomenų srauto klaida."
 
+msgid "Internal data flow error."
+msgstr "Vidinė duomenų tėkmės klaida."
+
+msgid "Internal clock error."
+msgstr "Vidinė laikrodžio klaida."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtruoti galimybes"
 
@@ -1116,6 +1128,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Paruošta, laukiama kol bus sukurtas buferis...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Paruošta, laukiama kol bus sukurtas buferis...\n"
+
 msgid "buffering..."
 msgstr "kuriamas buferis..."
 
@@ -1135,10 +1151,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Pertraukimas: stabdomas konvejeris...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "nėra elemento „%s“"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ĮSPĖJIMAS: iš elemento %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Išvesti žymas (dar žinomas kaip metaduomenys)"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index c5fd59e..e25de88 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index ce8d4c6..092a5da 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -231,6 +231,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Valgt klokke kan ikke brukes i røret."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "tittel"
 
@@ -762,6 +766,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "FEIL: fra element %s: %s\n"
 
@@ -826,15 +838,6 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
-msgid "Internal clock error."
-msgstr "Feil i intern klokke"
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Intern feil med dataflyt."
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -844,6 +847,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr "Intern feil med dataflyt."
+
+msgid "Internal clock error."
+msgstr "Feil i intern klokke"
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1072,6 +1084,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1091,10 +1106,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "ingen element «%s»"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "FEIL: fra element %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 4dc5e2e..a316ef4 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index c07b0de..45531c8 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,17 +1,17 @@
-# translation of gstreamer-1.0.3.po to Dutch
+# translation of gstreamer-0.10.32.2.po to Dutch
 # Dutch translation of gstreamer
 # Copyright (C) 2003-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gstreamer package.
 #
 # Thomas Vander Stichele <thomas@apestaart.org>, 2004.
 # Taco Witte <tcwitte@cs.uu.nl>, 2006.
-# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012.
+# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-11-29 22:42+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: nl\n"
@@ -19,7 +19,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.1\n"
 
 msgid "Print the GStreamer version"
 msgstr "Toon de GStreamer versie"
@@ -121,8 +121,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Interne GStreamer-fout: threadprobleem."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "GStreamer-fout: onderhandelingsprobleem."
+msgstr "Interne GStreamer-fout: onderhandelingsprobleem."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Interne GStreamer-fout: gebeurtenisprobleem."
@@ -139,8 +140,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "Er ontbreekt een plugin in uw GStreamer installatie."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "GStreamer-fout: klokprobleem."
+msgstr "Interne GStreamer-fout: klokprobleem."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -254,6 +256,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Geselecteerde klok kan niet gebruikt worden in de pijplijn."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "titel"
 
@@ -334,8 +340,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"vrij te kiezen commentaartekst bij gegevens in de vorm key=waarde of key[en]"
-"=commentaar "
+"vrij te kiezen commentaartekst bij gegevens in de vorm key=waarde of "
+"key[en]=commentaar "
 
 msgid "track number"
 msgstr "nummer"
@@ -557,14 +563,16 @@
 msgid "language code"
 msgstr "taalcode"
 
+#, fuzzy
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr "taalcode van deze stream, conform ISO-639-1 of ISO-639-2"
+msgstr "taalcode van deze stroom, conform ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "naam van taal"
+msgstr "taalcode"
 
 msgid "freeform name of the language this stream is in"
-msgstr "naam van de taal in vrije vorm van deze stream"
+msgstr ""
 
 msgid "image"
 msgstr "afbeelding"
@@ -656,12 +664,13 @@
 msgid "geo location sublocation"
 msgstr "geografische locatie van de sublocatie"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
-"een locatie in een stad waar het medium is geproduceerd of gemaakt (bijv. de "
-"buurt)"
+"een sublocatie in een stad waar het medium is opgenomen of geproduceerd "
+"(bijv. de buurt)"
 
 msgid "geo location horizontal error"
 msgstr "fout in horizontale geo-locatie"
@@ -798,6 +807,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "FOUT: van element %s: %s\n"
 
@@ -862,15 +879,6 @@
 msgid "empty pipeline not allowed"
 msgstr "lege pijplijn niet toegelaten"
 
-msgid "Internal clock error."
-msgstr "Interne fout met de klok."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Interne fout met gegevensdoorvoer."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Er worden veel buffers gedropt."
 
@@ -880,6 +888,15 @@
 msgid "Internal data stream error."
 msgstr "Interne fout in gegevensstroom."
 
+msgid "Internal data flow error."
+msgstr "Interne fout met gegevensdoorvoer."
+
+msgid "Internal clock error."
+msgstr "Interne fout met de klok."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filteropzetstukken"
 
@@ -1032,14 +1049,12 @@
 msgstr "Toon de inhoud van de plugin"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Controleer of het gespecificeerde element of plug-in bestaat"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Bij het controleren of het gespecificeerde element of plug-in bestaat, "
-"controleer ook dat zijn versie minstens de gespecificeerde versie is"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
@@ -1091,16 +1106,17 @@
 msgid "FOUND TAG\n"
 msgstr "TAG GEVONDEN\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "INH GEVONDEN   : gevonden door element \"%s\".\n"
+msgstr "TAG GEVONDEN   : gevonden door element \"%s\".\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "INH GEVONDEN   : gevonden door object \"%s\".\n"
+msgstr "TAG GEVONDEN   : gevonden door object \"%s\".\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "INH GEVONDEN\n"
+msgstr "TAG GEVONDEN\n"
 
 #, c-format
 msgid ""
@@ -1117,6 +1133,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Voorbereid, wacht op gereedkomen van de buffering...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Voorbereid, wacht op gereedkomen van de buffering...\n"
+
 msgid "buffering..."
 msgstr "in buffer opslaan..."
 
@@ -1137,14 +1157,22 @@
 msgstr "Interrupt: Pijplijn ingesteld op gestopt ...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "ontbrekend element: \"%s\"\n"
+msgstr "geen element \"%s\""
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "WAARSCHUWING: van element %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Tags (ook bekend als metadata) weergeven"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "INH uitvoeren (hoofdstukken en uitgaven)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Statusinformatie en eigenschapswaarschuwingen weergeven"
@@ -1211,8 +1239,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS bij afsluiten ingeschakeld -- Forceer een EOS op de pijplijn\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS bij afsluiten ingeschakeld -- wacht op EOS na fout\n"
+msgstr "EOS bij afsluiten ingeschakeld -- Forceer een EOS op de pijplijn\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Wacht op EOS...\n"
@@ -1220,8 +1249,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS ontvangen - pijplijn wordt gestopt...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Interrupt bij wachten op EOS - pijplijn wordt gestopt...\n"
+msgstr "Interrupt: Pijplijn ingesteld op gestopt ...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Er trad een fout op bij het wachten op EOS\n"
@@ -1238,8 +1268,8 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Pijplijn wordt vrijgemaakt ...\n"
 
-#~ msgid "maximum"
-#~ msgstr "maximum"
+#~ 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 ""
@@ -1270,6 +1300,3 @@
 
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Geen signaalafhandelaars installeren voor SIGUSR1 en SIGUSR2"
-
-#~ msgid "Print alloc trace (if enabled at compile time)"
-#~ msgstr "Toewijzingsspoor weergeven (indien aangezet tijdens compileren)"
diff --git a/po/pl.gmo b/po/pl.gmo
index 5dceaec..1dfa578 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index d5776fe..b302b49 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,13 +1,13 @@
 # Polish translation for gstreamer.
 # This file is distributed under the same license as the gstreamer package.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2012.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-11-28 19:15+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: pl\n"
@@ -115,8 +115,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Błąd wewnętrzny GStreamera: problem z wątkami."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Błąd GStreamera: problem z negocjacją."
+msgstr "Błąd wewnętrzny GStreamera: problem z negocjacją."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Błąd wewnętrzny GStreamera: problem ze zdarzeniami."
@@ -133,8 +134,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "W tej instalacji GStreamera brakuje wtyczki."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Błąd GStreamera: problem z zegarem."
+msgstr "Błąd wewnętrzny GStreamera: problem z zegarem."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -248,6 +250,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Wybrany zegar nie może być używany w potoku."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "tytuł"
 
@@ -325,8 +331,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"dowolny tekst komentujący dane w postaci klucz=wartość lub klucz[język]"
-"=komentarz"
+"dowolny tekst komentujący dane w postaci klucz=wartość lub "
+"klucz[język]=komentarz"
 
 msgid "track number"
 msgstr "numer ścieżki"
@@ -550,14 +556,16 @@
 msgid "language code"
 msgstr "kod języka"
 
+#, 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 lub ISO-639-2"
+msgstr "kod języka dla tego strumienia, zgodny z ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "nazwa języka"
+msgstr "kod języka"
 
 msgid "freeform name of the language this stream is in"
-msgstr "tekstowa nazwa języka, w jakim jest ten strumień"
+msgstr ""
 
 msgid "image"
 msgstr "obrazek"
@@ -652,6 +660,7 @@
 msgid "geo location sublocation"
 msgstr "część miejscowości lokalizacji"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -791,6 +800,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "BŁĄD: od elementu %s: %s\n"
 
@@ -855,15 +872,6 @@
 msgid "empty pipeline not allowed"
 msgstr "pusty potok nie jest dozwolony"
 
-msgid "Internal clock error."
-msgstr "Wewnętrzny błąd zegara."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Wewnętrzny błąd przepływu danych."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Wiele buforów zostało zgubionych."
 
@@ -873,6 +881,15 @@
 msgid "Internal data stream error."
 msgstr "Wewnętrzny błąd strumienia danych."
 
+msgid "Internal data flow error."
+msgstr "Wewnętrzny błąd przepływu danych."
+
+msgid "Internal clock error."
+msgstr "Wewnętrzny błąd zegara."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtrowanie możliwości"
 
@@ -1028,14 +1045,12 @@
 msgstr "Wypisanie zawartości wtyczek"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Sprawdzenie, czy podany element lub wtyczka istnieje"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Przy sprawdzaniu istnienia elementu lub wtyczki, sprawdzanie także czy "
-"wersja jest co najmniej podaną"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
@@ -1087,16 +1102,17 @@
 msgid "FOUND TAG\n"
 msgstr "ZNACZNIK\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "SPIS TREŚCI    : znaleziony przez element \"%s\".\n"
+msgstr "ZNACZNIK       : znaleziony przez element \"%s\".\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "SPIS TREŚCI    : znaleziony przez obiekt \"%s\".\n"
+msgstr "ZNACZNIK       : znaleziony przez obiekt \"%s\".\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "SPIS TREŚCI\n"
+msgstr "ZNACZNIK\n"
 
 #, c-format
 msgid ""
@@ -1113,6 +1129,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Przewinięto, czekanie na zakończenie buforowania...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Przewinięto, czekanie na zakończenie buforowania...\n"
+
 msgid "buffering..."
 msgstr "buforowanie..."
 
@@ -1133,14 +1153,22 @@
 msgstr "Przerwanie: Zatrzymywanie potoku...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Brak elementu: %s\n"
+msgstr "brak elementu \"%s\""
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "UWAGA: od elementu %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Wypisanie znaczników (znanych także jako metadane)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "Wypisanie spisu treści (rozdziałów i wydań)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Wypisywanie informacji o stanie i powiadomień właściwości"
@@ -1207,8 +1235,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "Włączony EOS przy wyłączaniu - wymuszanie EOS w potoku\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "Włączony EOS przy wyłączaniu - oczekiwanie na EOS po błędzie\n"
+msgstr "Włączony EOS przy wyłączaniu - wymuszanie EOS w potoku\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Oczekiwanie na EOS...\n"
@@ -1216,8 +1245,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Otrzymano EOS - zatrzymywanie potoku...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Przerwanie podczas oczekiwania na EOS - zatrzymywanie potoku...\n"
+msgstr "Przerwanie: Zatrzymywanie potoku...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Wystąpił błąd w trakcie oczekiwania na EOS\n"
@@ -1233,3 +1263,36 @@
 
 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"
+
+#~ msgid "ERROR: parse of xml file '%s' failed.\n"
+#~ msgstr "BŁĄD: analiza pliku xml '%s' nie powiodła się.\n"
+
+#~ msgid "ERROR: no toplevel pipeline element in file '%s'.\n"
+#~ msgstr "BŁĄD: brak głównego elementu potoku w pliku '%s'.\n"
+
+#~ msgid "WARNING: only one toplevel element is supported at this time.\n"
+#~ msgstr "UWAGA: aktualnie obsługiwany jest tylko jeden element główny.\n"
+
+#~ msgid "ERROR: could not parse command line argument %d: %s.\n"
+#~ msgstr ""
+#~ "BŁĄD: nie udało się przeanalizować argumentu %d linii poleceń: %s.\n"
+
+#~ msgid "WARNING: element named '%s' not found.\n"
+#~ msgstr "UWAGA: nie znaleziono elementu o nazwie '%s'.\n"
+
+#~ msgid "Save xml representation of pipeline to FILE and exit"
+#~ msgstr "Zapisanie reprezentacji xml potoku do PLIKU i zakończenie"
+
+#~ msgid "FILE"
+#~ msgstr "PLIK"
+
+#~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
+#~ msgstr "Nieinstalowanie obsługi sygnałów SIGUSR1 i SIGUSR2"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index e974825..7d09cad 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 289a88c..07e4770 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -265,6 +265,10 @@
 msgstr ""
 "O temporizador selecionado não pôde ser usado na fila de processamento."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "título"
 
@@ -342,8 +346,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"texto livre comentando os dados, usando o formato chave=valor ou chave[pt_BR]"
-"=comentário"
+"texto livre comentando os dados, usando o formato chave=valor ou "
+"chave[pt_BR]=comentário"
 
 msgid "track number"
 msgstr "número da faixa"
@@ -810,6 +814,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ERRO: do elemento %s: %s\n"
 
@@ -876,15 +888,6 @@
 msgid "empty pipeline not allowed"
 msgstr "não é permitido que a fila de processamento seja vazia"
 
-msgid "Internal clock error."
-msgstr "Erro interno no temporizador."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Erro interno no fluxo de dados."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Uma grande quantidade de buffers está sendo descartada."
 
@@ -894,6 +897,15 @@
 msgid "Internal data stream error."
 msgstr "Erro interno no fluxo de dados."
 
+msgid "Internal data flow error."
+msgstr "Erro interno no fluxo de dados."
+
+msgid "Internal clock error."
+msgstr "Erro interno no temporizador."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Caps do filtro"
 
@@ -1128,6 +1140,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Preparado, esperando o preenchimento do buffer para finalizar...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Preparado, esperando o preenchimento do buffer para finalizar...\n"
+
 msgid "buffering..."
 msgstr "preenchendo buffer..."
 
@@ -1150,10 +1166,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Interrupção: Parando a fila de processamento...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "nenhum elemento \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "AVISO: do elemento %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Exibir etiquetas (metadados)"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index dcd3aca..ea57d8c 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index c8db948..8e3ce99 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -254,6 +254,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Ceasul selectat nu poate fi utilizat în linia de asamblare."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "titlu"
 
@@ -813,6 +817,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "EROARE: de la elementul %s: %s\n"
 
@@ -878,15 +890,6 @@
 msgid "empty pipeline not allowed"
 msgstr "linia de asamblare vidă nu este permisă"
 
-msgid "Internal clock error."
-msgstr "Eroare internă de ceas."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Eroare internă de flux al datelor."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Multe zone de memorie tampon sunt abandonate."
 
@@ -896,6 +899,15 @@
 msgid "Internal data stream error."
 msgstr "Eroare internă a fluxului de date."
 
+msgid "Internal data flow error."
+msgstr "Eroare internă de flux al datelor."
+
+msgid "Internal clock error."
+msgstr "Eroare internă de ceas."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtrare majuscule"
 
@@ -1135,6 +1147,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Preîncărcare, se așteaptă terminarea umplerii memoriei tampon...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Preîncărcare, se așteaptă terminarea umplerii memoriei tampon...\n"
+
 msgid "buffering..."
 msgstr ""
 
@@ -1154,10 +1170,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Întrerupere: Se oprește linia de asamblare ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "niciun element „%s”"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "AVERTISMENT: de la elementul %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Marcaje de ieșire (cunoscute și ca „metadata”)"
 
diff --git a/po/ru.gmo b/po/ru.gmo
index efa1357..ae07fa0 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index d21d46f..90cbe29 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4,13 +4,13 @@
 # Peter Astakhov <astakhovp@mail.ru>, 2005.
 # Артём Попов <artfwo@gmail.com>, 2009.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
-# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011, 2012.
+# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer-1.0.3\n"
+"Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-12-01 13:36+0400\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: ru\n"
@@ -19,7 +19,7 @@
 "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"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 1.0\n"
 
 msgid "Print the GStreamer version"
 msgstr "Вывести версию GStreamer"
@@ -119,8 +119,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Внутренняя ошибка GStreamer: проблема с нитями."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Ошибка GStreamer: проблема связки элементов."
+msgstr "Внутренняя ошибка GStreamer: проблема связки элементов."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Внутренняя ошибка GStreamer: проблема с событиями."
@@ -137,8 +138,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "В вашей установке GStreamer отсутствует модуль."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Ошибка GStreamer: проблема синхронизации."
+msgstr "Внутренняя ошибка GStreamer: проблема синхронизации."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -253,6 +255,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Выбранные часы не могут быть использованы в конвейере."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Ошибка записи кэша реестра в %s: %s"
+
 msgid "title"
 msgstr "название"
 
@@ -330,8 +336,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"комментарий к этим данным в свободной форме в виде ключ=значение или ключ[en]"
-"=значение"
+"комментарий к этим данным в свободной форме в виде ключ=значение или "
+"ключ[en]=значение"
 
 msgid "track number"
 msgstr "номер дорожки"
@@ -553,14 +559,16 @@
 msgid "language code"
 msgstr "код языка"
 
+#, fuzzy
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr "код языка для этого потока согласно ISO-639-1 или ISO-639-2"
+msgstr "код языка для этого потока согласно ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "название языка"
+msgstr "код языка"
 
 msgid "freeform name of the language this stream is in"
-msgstr "название языка в произвольном формате этого потока в"
+msgstr ""
 
 msgid "image"
 msgstr "изображение"
@@ -656,6 +664,7 @@
 msgid "geo location sublocation"
 msgstr "доп. к местоположению"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -791,6 +800,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ОШИБКА: из элемента %s: %s\n"
 
@@ -855,15 +872,6 @@
 msgid "empty pipeline not allowed"
 msgstr "пустой конвейер недопустим"
 
-msgid "Internal clock error."
-msgstr "Внутренняя ошибка синхронизации."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Внутренняя ошибка передачи данных."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Многое из буфера было отброшено."
 
@@ -873,6 +881,15 @@
 msgid "Internal data stream error."
 msgstr "Внутренняя ошибка потока данных."
 
+msgid "Internal data flow error."
+msgstr "Внутренняя ошибка передачи данных."
+
+msgid "Internal clock error."
+msgstr "Внутренняя ошибка синхронизации."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Фильтровать возможности"
 
@@ -1028,14 +1045,12 @@
 msgstr "Вывести содержимое модуля"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Проверьте, что указанный элемент или модуль существует"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"При проверке существования элемента или модуля также проверьте, чтобы его "
-"версия была не старее указанной"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr "Вывести поддерживаемые схемы URI для элементов, которые их используют"
@@ -1086,16 +1101,17 @@
 msgid "FOUND TAG\n"
 msgstr "НАЙДЕН ТЕГ\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "НАЙДЕН TOC: найден элементом «%s».\n"
+msgstr "НАЙДЕН ТЕГ: найден элементом «%s».\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "НАЙДЕН TOC: найден объектом «%s».\n"
+msgstr "НАЙДЕН ТЕГ: найден объектом «%s».\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "НАЙДЕН TOC\n"
+msgstr "НАЙДЕН ТЕГ\n"
 
 #, c-format
 msgid ""
@@ -1110,36 +1126,48 @@
 msgstr "ПРЕДУПРЕЖДЕНИЕ: от элемента %s: %s\n"
 
 msgid "Prerolled, waiting for buffering to finish...\n"
-msgstr "Конвейер подготовлен, ожидается завершение буферизации…\n"
+msgstr "Конвейер подготовлен, ожидается завершение буферизации...\n"
+
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Конвейер подготовлен, ожидается завершение буферизации...\n"
 
 msgid "buffering..."
-msgstr "буферизация…"
+msgstr "буферизация..."
 
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
-msgstr "Буферизация завершена, конвейер переведён в состояние PLAYING…\n"
+msgstr "Буферизация завершена, конвейер переведён в состояние PLAYING...\n"
 
 msgid "Buffering, setting pipeline to PAUSED ...\n"
-msgstr "Идёт буферизация, конвейер переведён в состояние PAUSED…\n"
+msgstr "Идёт буферизация, конвейер переведён в состояние PAUSED...\n"
 
 msgid "Redistribute latency...\n"
-msgstr "Перераспределение латентности…\n"
+msgstr "Перераспределение латентности...\n"
 
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
-msgstr "Устанавливается состояние %s, запрошенное %s…\n"
+msgstr "Устанавливается состояние %s, запрошенное %s...\n"
 
 msgid "Interrupt: Stopping pipeline ...\n"
-msgstr "Прерывание: Остановка конвейера…\n"
+msgstr "Прерывание: Остановка конвейера...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Элемент отсутствует: %s\n"
+msgstr "элемент «%s» не найден"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ПРЕДУПРЕЖДЕНИЕ: от элемента %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Выводить теги (метаданные)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "Выводить TOC (главы и редакции)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Выводить информацию о состоянии и уведомления о свойствах"
@@ -1154,7 +1182,7 @@
 msgstr "Не выводить информацию о состоянии ТИПА"
 
 msgid "TYPE1,TYPE2,..."
-msgstr "ТИП1, ТИП2,…"
+msgstr "ТИП1, ТИП2,..."
 
 msgid "Do not install a fault handler"
 msgstr "Не устанавливать обработчик ошибок"
@@ -1180,43 +1208,45 @@
 msgstr "ОШИБКА: не найден элемент «pipeline».\n"
 
 msgid "Setting pipeline to PAUSED ...\n"
-msgstr "Установка конвейера в состояние PAUSED…\n"
+msgstr "Установка конвейера в состояние PAUSED...\n"
 
 msgid "ERROR: Pipeline doesn't want to pause.\n"
 msgstr "ОШИБКА: Конвейер не хочет становиться на паузу.\n"
 
 msgid "Pipeline is live and does not need PREROLL ...\n"
-msgstr "Конвейер работает и не требует состояния PREROLL…\n"
+msgstr "Конвейер работает и не требует состояния PREROLL...\n"
 
 msgid "Pipeline is PREROLLING ...\n"
-msgstr "Подготовка конвейера (PREROLL)…\n"
+msgstr "Подготовка конвейера (PREROLL)...\n"
 
 msgid "ERROR: pipeline doesn't want to preroll.\n"
 msgstr "ОШИБКА: конвейер не хочет подготавливаться (PREROLL).\n"
 
 msgid "Pipeline is PREROLLED ...\n"
-msgstr "Конвейер подготовлен (PREROLLED)…\n"
+msgstr "Конвейер подготовлен (PREROLLED)...\n"
 
 msgid "Setting pipeline to PLAYING ...\n"
-msgstr "Установка конвейера в состояние PLAYING…\n"
+msgstr "Установка конвейера в состояние PLAYING...\n"
 
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr "ОШИБКА: конвейер не хочет воспроизводить.\n"
 
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
-msgstr "Включён EOS при закрытии — Выдача EOS в конвейер\n"
+msgstr "Включён EOS при закрытии -- Выдача EOS в конвейер\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "Включён EOS при закрытии — ожидание EOS после ошибки\n"
+msgstr "Включён EOS при закрытии -- Выдача EOS в конвейер\n"
 
 msgid "Waiting for EOS...\n"
-msgstr "Ожидание EOS…\n"
+msgstr "Ожидание EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
-msgstr "Получен EOS — остановка конвейера…\n"
+msgstr "Получен EOS - остановка конвейера...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Прерывание во время ожидания EOS — остановка конвейера…\n"
+msgstr "Прерывание: Остановка конвейера...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Во время ожидания EOS произошла ошибка\n"
@@ -1225,16 +1255,16 @@
 msgstr "Выполнение окончено после %"
 
 msgid "Setting pipeline to READY ...\n"
-msgstr "Установка конвейера в состояние READY…\n"
+msgstr "Установка конвейера в состояние READY...\n"
 
 msgid "Setting pipeline to NULL ...\n"
-msgstr "Установка конвейера в состояние NULL…\n"
+msgstr "Установка конвейера в состояние NULL...\n"
 
 msgid "Freeing pipeline ...\n"
-msgstr "Освобождение конвейера…\n"
+msgstr "Освобождение конвейера...\n"
 
-#~ msgid "maximum"
-#~ msgstr "максимум"
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Вывести трассировку выделения памяти (если включено при сборке)"
 
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
@@ -1266,12 +1296,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Не устанавливать обработчики сигналов SIGUSR1 и SIGUSR2"
 
-#~ msgid "Print alloc trace (if enabled at compile time)"
-#~ msgstr "Вывести трассировку выделения памяти (если включено при сборке)"
-
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Ошибка записи кэша реестра в %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Ошибка повторного сканирования реестра %s: %s"
 
diff --git a/po/rw.gmo b/po/rw.gmo
index 1db7726..99e1a61 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index 7615483..3fd56dc 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -321,6 +321,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "umutwe"
 
@@ -956,6 +960,14 @@
 msgid ", "
 msgstr ", "
 
+#, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "Bivuye Ikigize:"
@@ -1022,15 +1034,6 @@
 msgid "empty pipeline not allowed"
 msgstr "ubusa OYA"
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -1040,6 +1043,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1283,6 +1295,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1302,10 +1317,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "Oya Ikigize:"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "Bivuye Ikigize:"
+
 #, fuzzy
 msgid "Output tags (also known as metadata)"
 msgstr "Nka"
diff --git a/po/sk.gmo b/po/sk.gmo
index 92bbf84..300c981 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index d71e746..4ea282b 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -269,6 +269,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Vybraný časovač sa nedá použiť v rúre."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Chyba pri zápise vyrovnávacej pamäte registrov do %s: %s"
+
 msgid "title"
 msgstr "názov"
 
@@ -808,6 +812,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "CHYBA: od prvku %s: %s\n"
 
@@ -872,15 +884,6 @@
 msgid "empty pipeline not allowed"
 msgstr "prázdna rúra sa nepripúšťa"
 
-msgid "Internal clock error."
-msgstr "Vnútorná chyba časovača."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Vnútorná chyba toku údajov."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Veľa vyrovnávacej pamäte sa zahadzuje."
 
@@ -890,6 +893,15 @@
 msgid "Internal data stream error."
 msgstr "Vnútorná chyba prúdu údajov."
 
+msgid "Internal data flow error."
+msgstr "Vnútorná chyba toku údajov."
+
+msgid "Internal clock error."
+msgstr "Vnútorná chyba časovača."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtrovať schopnosti"
 
@@ -1129,6 +1141,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Predčítané, čakám na dokončenie napĺňania vyrovnávacej pamäte...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Predčítané, čakám na dokončenie napĺňania vyrovnávacej pamäte...\n"
+
 msgid "buffering..."
 msgstr "Ukladám do vyrovnávacej pamäte..."
 
@@ -1148,10 +1164,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Prerušenie: Zastavujem rúru ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "prvok \"%s\" neexistuje"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "VAROVANIE: z prvku %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Vypísať značky (známe tiež ako metadáta)"
 
@@ -1288,9 +1312,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Neinštalovať obsluhu signálov SIGUSR1 a SIGUSR2"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Chyba pri zápise vyrovnávacej pamäte registrov do %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Chyba pri opätovnom skenovaní registrov %s: %s"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index d247746..b23012d 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index b8993f4..8f9b793 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,18 +1,18 @@
-# Slovenian translation for gstreamer.
+# Slovenian translation of gstreamer.
 # This file is distributed under the same license as the gstreamer package.
-# Copyright (C) 2005 - 2013 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 <klemen913@gmail.com>, 2011 - 2013.
+# Klemen Košir <klemen.kosir@gmx.com>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer-1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2013-01-05 10:16+0100\n"
-"Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "MIME-Version: 1.0\n"
@@ -20,7 +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-Generator: Poedit 1.5.4\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"
@@ -116,8 +118,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Notranja napaka GStreamer: težave z nitenjem."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Napaka GStreamer: težave s pogajanjem."
+msgstr "Notranja napaka GStreamer: težave s pogajanjem."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Notranja napaka GStreamer: težave z dogodkom."
@@ -134,8 +137,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "Namestitvi GStreamer manjka vstavek."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Napaka GStreamer: težave z uro."
+msgstr "Notranja napaka GStreamer: težave z uro."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -249,6 +253,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Izbrane ure ni mogoče uporabiti v cevovodu."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "naslov"
 
@@ -551,8 +559,9 @@
 msgid "language code"
 msgstr "jezikovna koda"
 
+#, 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 ali ISO-639-2"
+msgstr "koda jezika pretoka v skladu z ISO-639-1"
 
 msgid "language name"
 msgstr "ime jezika"
@@ -649,6 +658,7 @@
 msgid "geo location sublocation"
 msgstr "področje zemljepisne lege"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -787,6 +797,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "NAPAKA: predmet %s: %s\n"
 
@@ -852,15 +870,6 @@
 msgid "empty pipeline not allowed"
 msgstr "cevovod brez vsebine ni dovoljen"
 
-msgid "Internal clock error."
-msgstr "Notranja napaka ure."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Notranja napaka toka podatkov."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Veliko medpomnilnikov se prazni."
 
@@ -870,6 +879,15 @@
 msgid "Internal data stream error."
 msgstr "Notranja napaka pretoka podatkov."
 
+msgid "Internal data flow error."
+msgstr "Notranja napaka toka podatkov."
+
+msgid "Internal clock error."
+msgstr "Notranja napaka ure."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtriraj velikost črk"
 
@@ -1029,14 +1047,12 @@
 msgstr "Izpiši seznam vsebine vstavkov"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Preveri, če podan predmet ali vstavek že obstaja"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Med preverjanjem, če predmet ali vstavek že obstaja, preveri, če je ustrezna "
-"tudi različica"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr "Izpiši podprte sheme URI s predmeti, ki jih vstavljajo"
@@ -1087,16 +1103,17 @@
 msgid "FOUND TAG\n"
 msgstr "NAJDENA OZNAKA\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "NAJDENO KAZALO      : najdeno s predmetom \"%s\".\n"
+msgstr "NAJDENA OZNAKA      : najdeno s predmetom \"%s\".\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "NAJDENO KAZALO      : najdeno s predmetom \"%s\".\n"
+msgstr "NAJDENA OZNAKA      : najdeno s predmetom \"%s\".\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "NAJDENO KAZALO\n"
+msgstr "NAJDENA OZNAKA\n"
 
 #, c-format
 msgid ""
@@ -1113,6 +1130,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Pripravljeno, čakanje na zaključek polnjenja medpomnilnika ...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Pripravljeno, čakanje na zaključek polnjenja medpomnilnika ...\n"
+
 msgid "buffering..."
 msgstr "polnjenje medpomnilnika ..."
 
@@ -1134,14 +1155,22 @@
 msgstr "Prekinitev: zaustavljanje cevovoda ... \n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, c-format
 msgid "Missing element: %s\n"
 msgstr "Manjkajoči element: %s\n"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "OPOZORILO: predmet %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Izhodne oznake (znane tudi kot metapodatki)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "Izpiši kazalo (poglavja)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Izhodni podatki o stanju in obvestila o lastnostih"
@@ -1208,8 +1237,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS ob izklopu je omogočen -- vsiljen EOS vsebine cevovoda\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS ob izklopu je omogočen -- čakanje na EOS, ki sledi napaki\n"
+msgstr "EOS ob izklopu je omogočen -- vsiljen EOS vsebine cevovoda\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Čakanje na EOS ...\n"
@@ -1217,8 +1247,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Prejet EOS - zaustavljanje cevovoda ...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Prekinitev med čakanjem na EOS. Zaustavljanje cevovoda ...\n"
+msgstr "Prekinitev: zaustavljanje cevovoda ... \n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Med čakanjem na EOS je prišlo do napake\n"
@@ -1234,3 +1265,36 @@
 
 msgid "Freeing pipeline ...\n"
 msgstr "Sproščanje cevovoda ...\n"
+
+#~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
+#~ msgstr ""
+#~ "Uporaba: gst-xmllaunch <datoteka.xml> [ predmet.lastnost=vrednost ... ]\n"
+
+#~ msgid "ERROR: parse of xml file '%s' failed.\n"
+#~ msgstr "NAPAKA: razčlenjevanje datoteke XML \"%s\" je spodletelo.\n"
+
+#~ msgid "ERROR: no toplevel pipeline element in file '%s'.\n"
+#~ msgstr "NAPAKA: v datoteki \"%s\" ni vrhnjega predmeta cevovoda.\n"
+
+#~ msgid "WARNING: only one toplevel element is supported at this time.\n"
+#~ msgstr "OPOZORILO: trenutno je podprt le en vrhnji predmet.\n"
+
+#~ msgid "ERROR: could not parse command line argument %d: %s.\n"
+#~ msgstr "Napaka: argumenta %d ukazne vrstice ni mogoče razčleniti: %s.\n"
+
+#~ msgid "WARNING: element named '%s' not found.\n"
+#~ msgstr "OPOZORILO: predmeta z imenom \"%s\" ni mogoče najti.\n"
+
+#~ msgid "Save xml representation of pipeline to FILE and exit"
+#~ msgstr "Shrani XML-predstavitev cevovoda v DATOTEKO in končaj"
+
+#~ msgid "FILE"
+#~ msgstr "DATOTEKA"
+
+#~ 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 320e07e..f2875df 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 73d720f..225b23a 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -258,6 +258,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "titulli"
 
@@ -809,6 +813,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "GABIM: nga elementi %s: %s\n"
 
@@ -873,15 +885,6 @@
 msgid "empty pipeline not allowed"
 msgstr "nuk lejohet konduktori bosh"
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -891,6 +894,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1120,6 +1132,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1139,10 +1154,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "asnjë element \"%s\""
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "GABIM: nga elementi %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Tags e output (njohur gjithashtu si metadata)"
 
diff --git a/po/sr.gmo b/po/sr.gmo
index 301d61a..c124205 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 3716ff9..a2f03db 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -253,6 +253,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Изабрани сат не може бити коришћен у спојци низа."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "наслов"
 
@@ -797,6 +801,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ГРЕШКА: из елемента %s: %s\n"
 
@@ -861,15 +873,6 @@
 msgid "empty pipeline not allowed"
 msgstr "није допуштена празна спојка низа"
 
-msgid "Internal clock error."
-msgstr "Унутрашња грешка сата."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Унутрaшња грешка протока података."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Много помоћне меморије је одбачено."
 
@@ -879,6 +882,15 @@
 msgid "Internal data stream error."
 msgstr "Унутрашња грешка тока података."
 
+msgid "Internal data flow error."
+msgstr "Унутрaшња грешка протока података."
+
+msgid "Internal clock error."
+msgstr "Унутрашња грешка сата."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Филтрира могућности"
 
@@ -1118,6 +1130,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Предувијено, чекам да заврши смештање у међумеморију…\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Предувијено, чекам да заврши смештање у међумеморију…\n"
+
 msgid "buffering..."
 msgstr "смештам у међумеморију..."
 
@@ -1138,10 +1154,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Прекид: Заустављам спојку низа ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "нема елемента „%s“"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "УПОЗРЕЊЕ: из елемента %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Излазне ознаке (такође познате и као метаподаци)"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index ab463aa..f0245c8 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 3014153..4d49662 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -255,6 +255,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Vald klocka kan inte användas i rörledning."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Fel vid skrivning av registercache till %s: %s"
+
 msgid "title"
 msgstr "titel"
 
@@ -332,8 +336,8 @@
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"fri text som kommenterar dessa data i formatet key=värde eller key[sv]"
-"=kommentar"
+"fri text som kommenterar dessa data i formatet key=värde eller "
+"key[sv]=kommentar"
 
 msgid "track number"
 msgstr "spårnummer"
@@ -802,6 +806,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "FEL: från element %s: %s\n"
 
@@ -868,15 +880,6 @@
 msgid "empty pipeline not allowed"
 msgstr "tom rörledning är inte tillåtet"
 
-msgid "Internal clock error."
-msgstr "Internt klockfel."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Internt fel i dataflöde."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Förkastar en stor mängd buffertar."
 
@@ -886,6 +889,15 @@
 msgid "Internal data stream error."
 msgstr "Internt fel i dataström."
 
+msgid "Internal data flow error."
+msgstr "Internt fel i dataflöde."
+
+msgid "Internal clock error."
+msgstr "Internt klockfel."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Filtrera förmågor"
 
@@ -1125,6 +1137,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Förinläst, väntar på att buffringen ska bli färdig...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Förinläst, väntar på att buffringen ska bli färdig...\n"
+
 msgid "buffering..."
 msgstr "buffrar..."
 
@@ -1144,10 +1160,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Avbrott: Stoppar rörledningen ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "inget \"%s\"-element"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "VARNING: från elementet %s: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Utmatningstaggar (även känt som metadata)"
 
@@ -1282,9 +1306,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Installera inte signalhanterare för SIGUSR1 och SIGUSR2"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Fel vid skrivning av registercache till %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Fel vid återsökning av registret %s: %s"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 33febb5..11a7dbf 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 1d288d5..7f71db8 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -258,6 +258,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "başlık"
 
@@ -809,6 +813,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "HATA: %s öğesinden: %s\n"
 
@@ -873,15 +885,6 @@
 msgid "empty pipeline not allowed"
 msgstr "boş boruhattına izin verilmiyor"
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -891,6 +894,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1121,6 +1133,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1140,10 +1155,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "\"%s\" öğesi yok"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "HATA: %s öğesinden: %s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "Çıktı etiketleri (metadata olarak da bilinir)"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index 092a40d..4773e63 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 3f6c6fd..7bb27d3 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -3,13 +3,13 @@
 # This file is distributed under the same license as the gstreamer package.
 #
 # Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2007.
-# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012.
+# Yuri Chornoivan <yurchor@ukr.net>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-11-28 20:11+0200\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: uk\n"
@@ -18,7 +18,7 @@
 "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"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.2\n"
 
 msgid "Print the GStreamer version"
 msgstr "Показати дані щодо версії GStreamer"
@@ -114,8 +114,9 @@
 msgid "Internal GStreamer error: thread problem."
 msgstr "Внутрішня помилка GStreamer: помилка потоку виконання."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Помилка GStreamer: помилка встановлення зв'язку."
+msgstr "Внутрішня помилка GStreamer: помилка встановлення зв'язку."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Внутрішня помилка GStreamer: помилка події."
@@ -132,8 +133,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "У вашій збірці GStreamer відсутній модуль."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Помилка GStreamer: помилка годинника."
+msgstr "Внутрішня помилка GStreamer: помилка годинника."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -248,6 +250,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Обраний годинник не може використовуватись у конвеєрі."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "Помилка при записі кешу реєстру у %s: %s"
+
 msgid "title"
 msgstr "назва"
 
@@ -550,14 +556,16 @@
 msgid "language code"
 msgstr "код мови"
 
+#, fuzzy
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr "код мови для потоку, код має відповідати ISO-639-1 або ISO-639-2"
+msgstr "код мови для потоку, код має відповідати ISO-639-1"
 
+#, fuzzy
 msgid "language name"
-msgstr "назва мови"
+msgstr "код мови"
 
 msgid "freeform name of the language this stream is in"
-msgstr "назва мови цього потоку звукових даних у довільній формі"
+msgstr ""
 
 msgid "image"
 msgstr "зображення"
@@ -649,6 +657,7 @@
 msgid "geo location sublocation"
 msgstr "додаткові дані розташування"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
@@ -788,6 +797,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "ПОМИЛКА: у елементі %s: %s\n"
 
@@ -852,15 +869,6 @@
 msgid "empty pipeline not allowed"
 msgstr "не можна використовувати порожній канал"
 
-msgid "Internal clock error."
-msgstr "Помилка внутрішньої синхронізації."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Помилка внутрішнього перенесення даних."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Викинуто багато буферів."
 
@@ -870,6 +878,15 @@
 msgid "Internal data stream error."
 msgstr "Помилка внутрішнього потоку даних."
 
+msgid "Internal data flow error."
+msgstr "Помилка внутрішнього перенесення даних."
+
+msgid "Internal clock error."
+msgstr "Помилка внутрішньої синхронізації."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Фільтр можливостей"
 
@@ -1025,14 +1042,12 @@
 msgstr "Показати вміст модуля"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Перевірити, чи існує вказаний елемент або додаток"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Під час перевірки існування елемента або додатка також перевірити, чи є його "
-"версія новішою за вказану або рівною їй"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr "Показати підтримувані схеми адрес з елементами, які їх реалізують"
@@ -1083,16 +1098,17 @@
 msgid "FOUND TAG\n"
 msgstr "ЗНАЙДЕНО МІТКУ\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "ЗНАЙДЕНО ЗМІСТ : знайдено елементом «%s».\n"
+msgstr "ЗНАЙДЕНО ТЕГ  : знайдено у елементі «%s».\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "ЗНАЙДЕНО ЗМІСТУ: знайдено об’єктом «%s».\n"
+msgstr "ЗНАЙДЕНО МІТКУ : знайдено об’єктом «%s».\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "ЗНАЙДЕНО ЗМІСТ\n"
+msgstr "ЗНАЙДЕНО МІТКУ\n"
 
 #, c-format
 msgid ""
@@ -1109,6 +1125,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Виконано preroll, для буферизації для завершення...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Виконано preroll, для буферизації для завершення...\n"
+
 msgid "buffering..."
 msgstr "буферизація..."
 
@@ -1129,14 +1149,22 @@
 msgstr "Переривання: зупинка каналу...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Не вистачає елемента: %s\n"
+msgstr "немає елемента «%s»"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "ПОПЕРЕДЖЕННЯ: у елементі %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Вивести мітки (також відомі як метадані)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "Виведений зміст (розділи та редакції)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Вивести інформацію про стан та сповіщення щодо властивостей"
@@ -1203,8 +1231,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "Увімкнено EOS при завершенні - Примусове виведення EOS до каналу\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "Увімкнено EOS при завершенні - очікуємо на EOS після помилки\n"
+msgstr "Увімкнено EOS при завершенні - Примусове виведення EOS до каналу\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Очікування на EOS...\n"
@@ -1212,10 +1241,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Отримано EOS - завершення роботи каналу...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr ""
-"Переривання під час очікування на EOS - перериваємо роботу каналу "
-"передавання даних...\n"
+msgstr "Переривання: зупинка каналу...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Під час очікування на EOS сталася помилка\n"
@@ -1232,8 +1260,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Спорожнення каналу...\n"
 
-#~ msgid "maximum"
-#~ msgstr "максимум"
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Вивести трасування розподілу пам’яті (якщо ввімкнено при компіляції)"
 
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
@@ -1266,13 +1295,6 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Не встановлювати обробники сигналів для SIGUSR1 і SIGUSR2"
 
-#~ msgid "Print alloc trace (if enabled at compile time)"
-#~ msgstr ""
-#~ "Вивести трасування розподілу пам’яті (якщо ввімкнено при компіляції)"
-
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Помилка при записі кешу реєстру у %s: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "Помилка при повторному скануванні реєстру модулів %s: %s"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index 9cdb638..266e596 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index a298de4..b198f5e 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,25 +1,22 @@
 # Vietnamese Translation for GStreamer.
-# Copyright © 2012 Free Software Foundation, Inc.
+# Copyright © 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gstreamer package.
 # Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer-1.0.3\n"
+"Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:26+0100\n"
-"PO-Revision-Date: 2012-12-02 08:10+0700\n"
-"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Team-Website: <http://translationproject.org/team/vi.html>\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
-"X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Print the GStreamer version"
 msgstr "Hiển thị phiên bản GStreamer"
@@ -33,16 +30,17 @@
 msgid ""
 "Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
 msgstr ""
-"Mức gỡ lỗi mặc định từ 1 (chỉ lỗi) đến 5 (mọi thứ) hay 0 (không xuất gì)"
+"Mức gỡ lỗi mặc định từ 1 (chỉ lỗi) đến 5 (bất cứ điều nào) hay 0 (không xuất "
+"gì)"
 
 msgid "LEVEL"
-msgstr "MỨC"
+msgstr "CẤP"
 
 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 ""
-"Danh sách định giới bằng dấu phẩy của đôi “tên_loại:cấp” để đặt cấp dứt "
+"Danh sách định giới bằng dấu phẩy của đôi « tên_loại:cấp » để đặt cấp dứt "
 "khoát cho mỗi loại. Thí dụ: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
 
 msgid "LIST"
@@ -113,10 +111,11 @@
 msgstr "Lỗi nội bộ GStreamer: vấn đề đệm."
 
 msgid "Internal GStreamer error: thread problem."
-msgstr "Lỗi nội bộ GStreamer: vấn đề về tuyến."
+msgstr "Lỗi nội bộ GStreamer: vấn đề mạch."
 
+#, fuzzy
 msgid "GStreamer error: negotiation problem."
-msgstr "Lỗi GStreamer: vấn đề thỏa thuận."
+msgstr "Lỗi nội bộ GStreamer: vấn đề thỏa thuận."
 
 msgid "Internal GStreamer error: event problem."
 msgstr "Lỗi nội bộ GStreamer: vấn đề sự kiện."
@@ -125,7 +124,7 @@
 msgstr "Lỗi nội bộ GStreamer: vấn đề tìm nơi."
 
 msgid "Internal GStreamer error: caps problem."
-msgstr "Lỗi nội bộ GStreamer: vấn đề thư viện caps."
+msgstr "Lỗi nội bộ GStreamer: vấn đề thư viên caps."
 
 msgid "Internal GStreamer error: tag problem."
 msgstr "Lỗi nội bộ GStreamer: vấn đề thẻ."
@@ -133,8 +132,9 @@
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr "Bản cài đặt GStreamer của bạn còn thiếu một bổ sung."
 
+#, fuzzy
 msgid "GStreamer error: clock problem."
-msgstr "Lỗi GStreamer: vấn đề đồng hồ."
+msgstr "Lỗi nội bộ GStreamer: vấn đề đồng hồ."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
@@ -154,7 +154,7 @@
 msgstr "Không thể cấu hình thư viện hỗ trợ."
 
 msgid "Encoding error."
-msgstr "Gặp lỗi mã hóa."
+msgstr ""
 
 msgid "GStreamer encountered a general resource error."
 msgstr "Trình GStreamer mới gặp một lỗi tài nguyên chung."
@@ -190,7 +190,7 @@
 msgstr "Không thể đồng bộ trên tài nguyên."
 
 msgid "Could not get/set settings from/on resource."
-msgstr "Không thể lấy/đặt cài đặt từ/vào tài nguyên."
+msgstr "Không thể lấy/đặt thiết lập từ/vào tài nguyên."
 
 msgid "No space left on the resource."
 msgstr "Không có sức chứa còn rảnh trên tài nguyên đó."
@@ -246,6 +246,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Đồng hồ đã chọn không thể dùng trong đường ống."
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "tựa"
 
@@ -271,13 +275,13 @@
 msgstr "(các) người chịu trách nhiệm về bản thu, cho mục đích sắp xếp"
 
 msgid "album"
-msgstr "album"
+msgstr "tập nhạc"
 
 msgid "album containing this data"
 msgstr "tập nhạc chứa dữ liệu này"
 
 msgid "album sortname"
-msgstr "tên sắp album"
+msgstr "tên sắp tập"
 
 msgid "album containing this data for sorting purposes"
 msgstr "tập nhạc chứa dữ liệu này, cho mục đích sắp xếp"
@@ -300,11 +304,13 @@
 msgid "date the data was created (as a GDate structure)"
 msgstr "ngày tạo dữ liệu này (dạng cấu trúc GDate)"
 
+#, fuzzy
 msgid "datetime"
-msgstr "ngày-giờ"
+msgstr "ngày"
 
+#, fuzzy
 msgid "date and time the data was created (as a GstDateTime structure)"
-msgstr "ngày và giờ mà dữ liệu được tạo (dạng cấu trúc GstDateTime)"
+msgstr "ngày tạo dữ liệu này (dạng cấu trúc GDate)"
 
 msgid "genre"
 msgstr "thể loại"
@@ -351,7 +357,7 @@
 msgstr "số đếm đĩa ở trong tập hợp"
 
 msgid "location"
-msgstr "địa điểm"
+msgstr "đía điểm"
 
 msgid ""
 "Origin of media as a URI (location, where the original of the file or stream "
@@ -383,7 +389,7 @@
 
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
 msgstr ""
-"Luật thu âm Tiêu chuẩn Quốc tế (International Standard Recording Code) — xem "
+"Luật thu Tiêu chuẩn Quốc tế (International Standard Recording Code) — xem "
 "<http://www.ifpi.org/isrc/>."
 
 msgid "organization"
@@ -401,11 +407,12 @@
 msgid "URI to the copyright notice of the data"
 msgstr "địa chỉ URI đến thông báo tác quyền của dữ liệu này"
 
+#, fuzzy
 msgid "encoded by"
-msgstr "má hoá bởi"
+msgstr "mã hóa"
 
 msgid "name of the encoding person or organization"
-msgstr "tên của người hay tổ chức đã mã hoá tập tin"
+msgstr ""
 
 msgid "contact"
 msgstr "liên lạc"
@@ -511,10 +518,10 @@
 msgstr "phiên bản của bộ mã hóa được dùng để mã hóa luồng này"
 
 msgid "serial"
-msgstr "số sê-ri"
+msgstr "SSX"
 
 msgid "serial number of track"
-msgstr "số sê-ri của rãnh"
+msgstr "số sản xuất của rãnh này"
 
 msgid "replaygain track gain"
 msgstr "nhớ âm lượng rãnh"
@@ -549,16 +556,16 @@
 msgid "language code"
 msgstr "mã ngôn ngữ"
 
+#, fuzzy
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
-msgstr ""
-"mã ngôn ngữ cho luồng dữ liệu này, tùy theo tiêu chuẩn ISO-639-1 hoặc "
-"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 "Tên ngôn ngữ"
+msgstr "mã ngôn ngữ"
 
 msgid "freeform name of the language this stream is in"
-msgstr "tên freeform của ngôn ngữ luồng dữ liệu này là trong"
+msgstr ""
 
 msgid "image"
 msgstr "ảnh"
@@ -580,10 +587,10 @@
 msgstr "tập tin đính kèm luồng này"
 
 msgid "beats per minute"
-msgstr "tiếng nhịp đập mỗi phút"
+msgstr "tiếng đập mỗi phút"
 
 msgid "number of beats per minute in audio"
-msgstr "số tiếng nhịp trong mỗi phút âm thanh"
+msgstr "số tiếng lập trong mỗi phút âm thanh"
 
 msgid "keywords"
 msgstr "từ khoá"
@@ -637,30 +644,32 @@
 
 msgid "country (english name) where the media has been recorded or produced"
 msgstr ""
-"quốc gia (tên tiếng Anh, v.d. “Vietnam”) ở đó nhạc/phím đã được thu hay tạo"
+"quốc gia (tên tiếng Anh, v.d. « Vietnam ») ở đó nhạc/phím đã được thu hay tạo"
 
 msgid "geo location city"
 msgstr "vị trí địa lý của thành phố"
 
 msgid "city (english name) where the media has been recorded or produced"
 msgstr ""
-"thành phố (tên tiếng Anh, v.d. “Hanoi”) ở đó nhạc/phím đã được thu hay tạo"
+"thành phố (tên tiếng Anh, v.d. « Hanoi ») ở đó nhạc/phím đã được thu hay tạo"
 
 msgid "geo location sublocation"
 msgstr "vị trí phụ địa lý"
 
+#, fuzzy
 msgid ""
 "a location within a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
-"một vùng bên trong thành phố ở đó dữ liệu đa phương tiện đã được tạo hay sản "
-"xuất (v.d. hàng xóm)"
+"một vùng bên trong thành phố ở đó phương tiện đã được tạo hay sản xuất (v.d. "
+"hàng xóm)"
 
+#, fuzzy
 msgid "geo location horizontal error"
-msgstr "lỗi thanh ngang vị trí theo Trái Đất"
+msgstr "tên định vị địa lý"
 
 msgid "expected error of the horizontal positioning measures (in meters)"
-msgstr "chờ đợi một lỗi của đo lường vị trí đường nằm ngang (tính bằng mét)"
+msgstr ""
 
 msgid "geo location movement speed"
 msgstr "tốc độ di chuyển theo vị trí đại lý"
@@ -768,18 +777,19 @@
 msgid "Model of the device used to create this media"
 msgstr "Mô hình của thiết bị được dùng để tạo phương tiện này"
 
+#, fuzzy
 msgid "application name"
-msgstr "tên ứng dụng"
+msgstr "tên định vị địa lý"
 
+#, fuzzy
 msgid "Application used to create the media"
-msgstr "Ứng dụng sử dụng để tạo đa phương tiện"
+msgstr "Mô hình của thiết bị được dùng để tạo phương tiện này"
 
 msgid "application data"
-msgstr "dữ liệu ứng dụng"
+msgstr ""
 
 msgid "Arbitrary application data to be serialized into the media"
 msgstr ""
-"Dữ liệu ứng dụng tùy ý để được xếp thứ tự vào trong đa phương tiện (media)"
 
 msgid "image orientation"
 msgstr "hướng ảnh"
@@ -791,8 +801,16 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
-msgstr "LỖI: từ phần tử %s: %s\n"
+msgstr "LỖI: từ yếu tố %s: %s\n"
 
 #, c-format
 msgid ""
@@ -804,19 +822,19 @@
 
 #, c-format
 msgid "specified empty bin \"%s\", not allowed"
-msgstr "không cho phép nhị phân trống được ghi rõ “%s”"
+msgstr "không cho phép nhị phân trống được ghi rõ « %s »"
 
 #, c-format
 msgid "no bin \"%s\", skipping"
-msgstr "không có nhị phân “%s” nên bỏ qua"
+msgstr "không có nhị phân « %s » nên bỏ qua"
 
 #, c-format
 msgid "no property \"%s\" in element \"%s\""
-msgstr "không có tài sản “%s” trong phần tử “%s”"
+msgstr "không có tài sản « %s » trong yếu tố « %s »"
 
 #, c-format
 msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
-msgstr "không thể đặt tài sản “%s” trong phần tử “%s” thành “%s”"
+msgstr "không thể đặt tài sản « %s » trong yếu tố « %s » thành « %s »"
 
 #, c-format
 msgid "could not link %s to %s"
@@ -824,11 +842,11 @@
 
 #, c-format
 msgid "no element \"%s\""
-msgstr "không có yếu tố “%s”"
+msgstr "không có yếu tố « %s »"
 
 #, c-format
 msgid "could not parse caps \"%s\""
-msgstr "không thể phân tách caps “%s”"
+msgstr "không thể phân tách caps « %s »"
 
 msgid "link without source element"
 msgstr "liên kết không có yếu tố nguồn"
@@ -839,36 +857,27 @@
 
 #, c-format
 msgid "no source element for URI \"%s\""
-msgstr "không có yếu tố nguồn cho URI “%s”"
+msgstr "không có yếu tố nguồn cho URI « %s »"
 
 #, c-format
 msgid "no element to link URI \"%s\" to"
-msgstr "không có yếu tố đến đó cần liên kết URI “%s”"
+msgstr "không có yếu tố đến đó cần liên kết URI « %s »"
 
 #, c-format
 msgid "no sink element for URI \"%s\""
 msgstr ""
 "không có yếu tố quản lý việc phân phối dữ liệu vào đệm khác nhau, cho địa "
-"điểm “%s”"
+"điểm « %s »"
 
 #, c-format
 msgid "could not link sink element for URI \"%s\""
 msgstr ""
 "không thể kết hợp yếu tố quản lý việc phân phối dữ liệu vào đệm khác nhau, "
-"cho URI “%s”"
+"cho URI « %s »"
 
 msgid "empty pipeline not allowed"
 msgstr "không cho phép đường ống trống"
 
-msgid "Internal clock error."
-msgstr "Lỗi đồng hồ nội bộ."
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "Lỗi luồng dữ liệu nội bộ."
-
 msgid "A lot of buffers are being dropped."
 msgstr "Nhiều bộ đệm bị bỏ."
 
@@ -878,6 +887,15 @@
 msgid "Internal data stream error."
 msgstr "Lỗi luồng dữ liệu nội bộ."
 
+msgid "Internal data flow error."
+msgstr "Lỗi luồng dữ liệu nội bộ."
+
+msgid "Internal clock error."
+msgstr "Lỗi đồng hồ nội bộ."
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "Lọc tối đa"
 
@@ -894,38 +912,38 @@
 
 #, c-format
 msgid "Could not open file \"%s\" for writing."
-msgstr "Không thể mở tập tin “%s” để ghi."
+msgstr "Không thể mở tập tin « %s » để ghi."
 
 #, c-format
 msgid "Error closing file \"%s\"."
-msgstr "Gặp lỗi khi đóng tập tin “%s”."
+msgstr "Gặp lỗi khi đóng tập tin « %s »."
 
 #, c-format
 msgid "Error while seeking in file \"%s\"."
-msgstr "Gặp lỗi khi tìm trong tập tin “%s”."
+msgstr "Gặp lỗi khi tìm trong tập tin « %s »."
 
 #, c-format
 msgid "Error while writing to file \"%s\"."
-msgstr "Gặp lỗi khi ghi vào tập tin “%s”."
+msgstr "Gặp lỗi khi ghi vào tập tin « %s »."
 
 msgid "No file name specified for reading."
 msgstr "Chưa ghi rõ tên tập tin để đọc."
 
 #, c-format
 msgid "Could not open file \"%s\" for reading."
-msgstr "Không thể mở tập tin “%s” để đọc."
+msgstr "Không thể mở tập tin « %s » để đọc."
 
 #, c-format
 msgid "Could not get info on \"%s\"."
-msgstr "Không thể lấy thông tin về “%s”."
+msgstr "Không thể lấy thông tin về « %s »."
 
 #, c-format
 msgid "\"%s\" is a directory."
-msgstr "“%s” là thư mục."
+msgstr "« %s » là thư mục."
 
 #, c-format
 msgid "File \"%s\" is a socket."
-msgstr "Tập tin “%s” là ổ cắm."
+msgstr "Tập tin « %s » là ổ cắm."
 
 msgid "Failed after iterations as requested."
 msgstr "Lỗi sau số lần lặp lại được chọn."
@@ -935,7 +953,7 @@
 
 #, c-format
 msgid "Could not create temp file \"%s\"."
-msgstr "Không thể tạo tập tin tạm thời “%s”."
+msgstr "Không thể tạo tập tin tạm thời « %s »."
 
 msgid "Error while writing to download file."
 msgstr "Gặp lỗi khi ghi vào tập tin tải về."
@@ -971,13 +989,13 @@
 msgstr "điều khiển được"
 
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
-msgstr "có thể thay đổi được trong trạng thái NULL, READY, PAUSED hay PLAYING"
+msgstr ""
 
 msgid "changeable only in NULL, READY or PAUSED state"
-msgstr "chỉ có thể thay đổi trong trạng thái NULL, READY hay PAUSED"
+msgstr ""
 
 msgid "changeable only in NULL or READY state"
-msgstr "chỉ có thể thay đổi trong trạng thái NULL hay READY"
+msgstr ""
 
 msgid "Blacklisted files:"
 msgstr "Tập tin bị cấm:"
@@ -1025,14 +1043,12 @@
 msgstr "Liệt kê nội dung phần bổ sung"
 
 msgid "Check if the specified element or plugin exists"
-msgstr "Kiểm tra xem một phần tử hay phần bổ xung đã cho có tồn tại hay không"
+msgstr ""
 
 msgid ""
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Kiểm tra xem một phần tử hay phần bổ xung đã cho có tồn tại hay không, đồng "
-"thời cũng kiểm tra cả phiên bản tối thiểu có thể hoạt động được"
 
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr "In ra các lược đồ URI được hỗ trợ, với những yếu tố thực hiện chúng."
@@ -1043,22 +1059,22 @@
 
 #, c-format
 msgid "No such element or plugin '%s'\n"
-msgstr "Không có yếu tố hay phần bổ sung như vậy “%s”\n"
+msgstr "Không có yếu tố hay phần bổ sung như vậy « %s »\n"
 
 msgid "Index statistics"
-msgstr "Thống kê chỉ mục"
+msgstr ""
 
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
-msgstr "Nhận được thông điệp số %u từ phần tử “%s” (%s): "
+msgstr "Nhận được thông điệp số %u từ phần tử « %s » (%s): "
 
 #, c-format
 msgid "Got message #%u from pad \"%s:%s\" (%s): "
-msgstr "Nhận được thông điệp số %u từ đệm “%s:%s” (%s): "
+msgstr "Nhận được thông điệp số %u từ đệm « %s:%s » (%s): "
 
 #, c-format
 msgid "Got message #%u from object \"%s\" (%s): "
-msgstr "Nhận được thông điệp số %u từ đối tượng “%s” (%s): "
+msgstr "Nhận được thông điệp số %u từ đối tượng « %s » (%s): "
 
 #, c-format
 msgid "Got message #%u (%s): "
@@ -1066,33 +1082,34 @@
 
 #, c-format
 msgid "Got EOS from element \"%s\".\n"
-msgstr "Mới nhận kết thúc luồng (EOS) từ yếu tố “%s”.\n"
+msgstr "Mới nhận kết thúc luồng (EOS) từ yếu tố « %s ».\n"
 
 #, c-format
 msgid "FOUND TAG      : found by element \"%s\".\n"
-msgstr "THẺ ĐÃ TÌM     : được tìm bởi phần tử “%s”.\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi yếu tố « %s ».\n"
 
 #, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
-msgstr "THẺ ĐÃ TÌM     : được tìm bởi đệm “%s:%s”.\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi đệm « %s:%s ».\n"
 
 #, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
-msgstr "THẺ ĐÃ TÌM     : được tìm bởi đối tượng “%s”.\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi đối tượng « %s ».\n"
 
 msgid "FOUND TAG\n"
 msgstr "THẺ ĐÃ TÌM\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
-msgstr "TOC ĐÃ TÌM     : được tìm bởi phần tử \"%s\".\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi yếu tố « %s ».\n"
 
-#, c-format
+#, fuzzy, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
-msgstr "TOC ĐÃ TÌM     : được tìm bởi đối tượng \"%s\".\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi đối tượng « %s ».\n"
 
+#, fuzzy
 msgid "FOUND TOC\n"
-msgstr "TOC TÌM THẤY\n"
+msgstr "THẺ ĐÃ TÌM\n"
 
 #, c-format
 msgid ""
@@ -1104,19 +1121,23 @@
 
 #, c-format
 msgid "WARNING: from element %s: %s\n"
-msgstr "CẢNH BÁO: từ yếu tố %s: %s\n"
+msgstr "CẢNH BÁO : từ yếu tố %s: %s\n"
 
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Cuộn sẵn, đợi chuyển hoán đệm xong...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Cuộn sẵn, đợi chuyển hoán đệm xong...\n"
+
 msgid "buffering..."
 msgstr "đang chuyển hoán đệm..."
 
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
-msgstr "Hoàn tất chuyển hoán đệm nên đặt đường ống thành ĐANG PHÁT ...\n"
+msgstr "Hoàn tất chuyển hoán đệm nên lập đường ống thành ĐANG PHÁT ...\n"
 
 msgid "Buffering, setting pipeline to PAUSED ...\n"
-msgstr "Đang chuyển hoán đệm nên đặt đường ống thành BỊ TẠM DỪNG ...\n"
+msgstr "Đang chuyển hoán đệm nên lập đường ống thành BỊ TẠM DỪNG ...\n"
 
 msgid "Redistribute latency...\n"
 msgstr "Phân phối lại sự âm ỷ...\n"
@@ -1129,14 +1150,22 @@
 msgstr "Ngắt: đang ngừng chạy đường ống ...\n"
 
 #, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "Thiếu phần tử: %s\n"
+msgstr "không có yếu tố « %s »"
+
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "CẢNH BÁO : từ yếu tố %s: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Thể xuất (cũng được biết là siêu dữ liệu)"
 
 msgid "Output TOC (chapters and editions)"
-msgstr "TOC kết xuất (các chương và phiên bản)"
+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"
@@ -1160,7 +1189,7 @@
 msgstr "Ép buộc kết thúc luồng trên các nguồn trước khi đóng đường ống"
 
 msgid "Gather and print index statistics"
-msgstr "Tập hợp lại và in ra thống kê chỉ mục"
+msgstr ""
 
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
@@ -1171,13 +1200,13 @@
 
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
-msgstr "CẢNH BÁO: đường ống có lỗi: %s\n"
+msgstr "CẢNH BÁO : đường ống có lỗi: %s\n"
 
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
-msgstr "LỖI: không tìm thấy yếu tố “đường ống” (pipeline).\n"
+msgstr "LỖI: không tìm thấy yếu tố « đường ống » (pipeline).\n"
 
 msgid "Setting pipeline to PAUSED ...\n"
-msgstr "Đang đặt đường ống thành BỊ TẠM DỪNG ...\n"
+msgstr "Đang lập đường ống thành BỊ TẠM DỪNG ...\n"
 
 msgid "ERROR: Pipeline doesn't want to pause.\n"
 msgstr "LỖI: đường ống không tạm dừng được.\n"
@@ -1195,7 +1224,7 @@
 msgstr "Đường ống ĐÃ TIỀN CUỘN ...\n"
 
 msgid "Setting pipeline to PLAYING ...\n"
-msgstr "Đang đặt đường ống thành ĐANG PHÁT ...\n"
+msgstr "Đang lập đường ống thành ĐANG PHÁT ...\n"
 
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr "LỖI: đường ống không phát được.\n"
@@ -1205,8 +1234,11 @@
 "Kết thúc luồng khi tắt phần mềm vẫn còn hoạt động thì đang ép buộc kết thúc "
 "luồng trên đường ống\n"
 
+#, fuzzy
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
-msgstr "EOS khi tắt máy được bật -- chờ sau Lỗi EOS\n"
+msgstr ""
+"Kết thúc luồng khi tắt phần mềm vẫn còn hoạt động thì đang ép buộc kết thúc "
+"luồng trên đường ống\n"
 
 msgid "Waiting for EOS...\n"
 msgstr "Đang đợi kết thúc luồng...\n"
@@ -1214,8 +1246,9 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Nhận được tín hiệu kết thúc luồng: đang ngừng chạy đường ống ...\n"
 
+#, fuzzy
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
-msgstr "Ngắt trong khi chờ EOS - đang dừng đường ống lại...\n"
+msgstr "Ngắt: đang ngừng chạy đường ống ...\n"
 
 msgid "An error happened while waiting for EOS\n"
 msgstr "Gặp lỗi trong khi đợi kết thúc luồng\n"
@@ -1224,35 +1257,35 @@
 msgstr "Thực hiện xong sau %"
 
 msgid "Setting pipeline to READY ...\n"
-msgstr "Đang đặt đường ống thành SẴN SÀNG ...\n"
+msgstr "Đang lập đường ống thành SẴN SÀNG ...\n"
 
 msgid "Setting pipeline to NULL ...\n"
-msgstr "Đang đặt đường ống thành VÔ GIÁ TRỊ ...\n"
+msgstr "Đang lập đường ống thành VÔ GIÁ TRỊ ...\n"
 
 msgid "Freeing pipeline ...\n"
-msgstr "Đang giải phóng đường ống ...\n"
+msgstr "Đang giải phóng đường ống...\n"
 
-#~ msgid "maximum"
-#~ msgstr "tối đa"
+#~ 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"
 
 #~ msgid "ERROR: parse of xml file '%s' failed.\n"
-#~ msgstr "LỖI: lỗi phân tách tập tin xml “%s”.\n"
+#~ msgstr "LỖI: lỗi phân tách tập tin xml « %s ».\n"
 
 #~ msgid "ERROR: no toplevel pipeline element in file '%s'.\n"
-#~ msgstr "LỖI: không có yếu tố đường ống cấp đầu trong tập tin “%s”.\n"
+#~ msgstr "LỖI: không có yếu tố đường ống cấp đầu trong tập tin « %s ».\n"
 
 #~ msgid "WARNING: only one toplevel element is supported at this time.\n"
-#~ msgstr "CẢNH BÁO: hiện thời hỗ trợ chỉ một yếu tố cấp đầu.\n"
+#~ msgstr "CẢNH BÁO : hiện thời hỗ trợ chỉ một yếu tố cấp đầu.\n"
 
 #~ msgid "ERROR: could not parse command line argument %d: %s.\n"
 #~ msgstr "LỖI: không thể phân tách đối số dòng lệnh %d: %s.\n"
 
 #~ msgid "WARNING: element named '%s' not found.\n"
-#~ msgstr "CẢNH BÁO: không tìm thấy yếu tố tên “%s”.\n"
+#~ msgstr "CẢNH BÁO : không tìm thấy yếu tố tên « %s ».\n"
 
 #~ msgid "Save xml representation of pipeline to FILE and exit"
 #~ msgstr "Lưu đường ống dạng XML vào TẬP_TIN rồi thoát"
@@ -1262,6 +1295,3 @@
 
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Đừng cài đặt bộ quản lý tín hiệu cho SIGUSR1 và SIGUSR2"
-
-#~ 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)"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index c32b1e2..a1718b3 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 c4d996f..bfd3665 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -238,6 +238,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr "选中的时钟序列无法用在管道中。"
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr "寄存器缓存写入 %s 时出错: %s"
+
 msgid "title"
 msgstr "标题"
 
@@ -774,6 +778,14 @@
 msgstr ", "
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "错误:来自组件 %s:%s\n"
 
@@ -838,15 +850,6 @@
 msgid "empty pipeline not allowed"
 msgstr "不允许空管道"
 
-msgid "Internal clock error."
-msgstr "内部时钟错误。"
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr "内部数据流错误。"
-
 msgid "A lot of buffers are being dropped."
 msgstr "很多缓冲区正被丢弃。"
 
@@ -856,6 +859,15 @@
 msgid "Internal data stream error."
 msgstr "内部数据流错误。"
 
+msgid "Internal data flow error."
+msgstr "内部数据流错误。"
+
+msgid "Internal clock error."
+msgstr "内部时钟错误。"
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr "过滤分析器"
 
@@ -1085,6 +1097,10 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr "Prerolled,等待缓冲完成...\n"
 
+#, fuzzy
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr "Prerolled,等待缓冲完成...\n"
+
 msgid "buffering..."
 msgstr "正在缓冲..."
 
@@ -1104,10 +1120,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "中断: 中止管道 ...\n"
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "无组件“%s”"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "警告:来自组件 %s:%s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr "输出标识(也可认为是元数据)"
 
@@ -1209,9 +1233,6 @@
 msgid "Freeing pipeline ...\n"
 msgstr "释放管道资源 ...\n"
 
-#~ msgid "maximum"
-#~ msgstr "最大"
-
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "用法: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 
@@ -1239,9 +1260,6 @@
 #~ msgid "Print alloc trace (if enabled at compile time)"
 #~ msgstr "打印分配记录(如果在编译时开启的话)"
 
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "寄存器缓存写入 %s 时出错: %s"
-
 #~ msgid "Error re-scanning registry %s: %s"
 #~ msgstr "重新扫描寄存器 %s 时出错: %s"
 
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 01ed07e..967e1c2 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 ae9ecf6..e10b6d0 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: 2013-07-11 19:26+0100\n"
+"POT-Creation-Date: 2013-07-11 15:09+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"
@@ -254,6 +254,10 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
+#, c-format
+msgid "Error writing registry cache to %s: %s"
+msgstr ""
+
 msgid "title"
 msgstr "標題"
 
@@ -792,6 +796,14 @@
 msgstr ""
 
 #, c-format
+msgid "No URI handler for the %s protocol found"
+msgstr ""
+
+#, c-format
+msgid "URI scheme '%s' not supported"
+msgstr ""
+
+#, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr "錯誤:來自 %s 元件:%s\n"
 
@@ -856,15 +868,6 @@
 msgid "empty pipeline not allowed"
 msgstr "不允許使用沒有內容的管線"
 
-msgid "Internal clock error."
-msgstr ""
-
-msgid "Failed to map buffer."
-msgstr ""
-
-msgid "Internal data flow error."
-msgstr ""
-
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
@@ -874,6 +877,15 @@
 msgid "Internal data stream error."
 msgstr ""
 
+msgid "Internal data flow error."
+msgstr ""
+
+msgid "Internal clock error."
+msgstr ""
+
+msgid "Failed to map buffer."
+msgstr ""
+
 msgid "Filter caps"
 msgstr ""
 
@@ -1099,6 +1111,9 @@
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
+msgid "Prerolled, waiting for progress to finish...\n"
+msgstr ""
+
 msgid "buffering..."
 msgstr ""
 
@@ -1118,10 +1133,18 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
+#, c-format
+msgid "Progress: (%s) %s\n"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "“%s” 元件不存在"
 
+#, fuzzy, c-format
+msgid "Got context from element '%s': %s\n"
+msgstr "錯誤:來自 %s 元件:%s\n"
+
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
diff --git a/scripts/gst-uninstalled b/scripts/gst-uninstalled
index 117fb79..2a9d3bf 100755
--- a/scripts/gst-uninstalled
+++ b/scripts/gst-uninstalled
@@ -53,6 +53,7 @@
 $GST/gst-player/src:\
 $GST/gst-editor/src:\
 $GST/gstreamer-sharp/tools:\
+$GST/orc/tools:\
 $GST_PREFIX/bin:\
 $PATH"
 
@@ -61,26 +62,24 @@
 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}
 
+# ORC
+LD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$LD_LIBRARY_PATH
+DYLD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$DYLD_LIBRARY_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
-do
-   LD_LIBRARY_PATH=$GST/gst-ffmpeg/gst-libs/ext/ffmpeg/$path:$LD_LIBRARY_PATH
-   DYLD_LIBRARY_PATH=$GST/gst-ffmpeg/gst-libs/ext/ffmpeg/$path:$DYLD_LIBRARY_PATH
-done
-
 # GStreamer Editing Services library
 LD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$LD_LIBRARY_PATH
 DYLD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$DYLD_LIBRARY_PATH
+GI_TYPELIB_PATH=$GST/gst-editing-services/ges:$GI_TYPELIB_PATH
 PATH=$GST/gst-editing-services/tools:$PATH
 
 
 # GStreamer plugins base libraries
-for path in app audio cdda fft interfaces pbutils netbuffer riff rtp rtsp sdp tag utils video 
+for path in allocators app audio fft pbutils riff rtp rtsp sdp tag utils video
 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
@@ -88,7 +87,7 @@
 done
 
 # GStreamer plugins bad libraries
-for path in basecamerabinsrc codecparsers interfaces
+for path in basecamerabinsrc codecparsers uridownloader egl insertbin interfaces mpegts
 do
   LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
   DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
@@ -96,7 +95,7 @@
 done
 
 # GStreamer core libraries
-for path in base net check controller
+for path in base check controller net
 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
@@ -116,11 +115,13 @@
 :$GST/gst-plugins-good/pkgconfig\
 :$GST/gst-plugins-ugly/pkgconfig\
 :$GST/gst-plugins-bad/pkgconfig\
+:$GST/gst-libav/pkgconfig\
 :$GST/gst-ffmpeg/pkgconfig\
 :$GST/gst-python/pkgconfig\
 :$GST/gst-rtsp-server/pkgconfig\
 :$GST/gst-editing-services/pkgconfig\
 :$GST/gstreamer-sharp/pkgconfig\
+:$GST/orc\
 :$GST/farsight2\
 :$GST/libnice/nice\
 ${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
diff --git a/test-driver b/test-driver
new file mode 100755
index 0000000..32bf39e
--- /dev/null
+++ b/test-driver
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# 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
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='' # Red.
+  grn='' # Green.
+  lgn='' # Light green.
+  blu='' # Blue.
+  mgn='' # Magenta.
+  std=''     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 7894e53..e2ee5ab 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 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 \
@@ -83,33 +109,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -246,15 +301,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -264,11 +315,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -276,6 +325,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -338,6 +388,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -494,22 +545,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -524,57 +578,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -590,12 +599,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -607,15 +611,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -624,6 +624,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -784,22 +799,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/benchmarks/Makefile.am b/tests/benchmarks/Makefile.am
index 7e1cb55..3301172 100644
--- a/tests/benchmarks/Makefile.am
+++ b/tests/benchmarks/Makefile.am
@@ -6,6 +6,7 @@
         init \
         mass-elements \
         gstpollstress \
+        gstpoolstress \
         gstclockstress	\
 	gstbufferstress
 
diff --git a/tests/benchmarks/Makefile.in b/tests/benchmarks/Makefile.in
index e343847..b011746 100644
--- a/tests/benchmarks/Makefile.in
+++ b/tests/benchmarks/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,17 +81,17 @@
 target_triplet = @target@
 noinst_PROGRAMS = caps$(EXEEXT) capsnego$(EXEEXT) complexity$(EXEEXT) \
 	controller$(EXEEXT) init$(EXEEXT) mass-elements$(EXEEXT) \
-	gstpollstress$(EXEEXT) gstclockstress$(EXEEXT) \
-	gstbufferstress$(EXEEXT)
+	gstpollstress$(EXEEXT) gstpoolstress$(EXEEXT) \
+	gstclockstress$(EXEEXT) gstbufferstress$(EXEEXT)
 subdir = tests/benchmarks
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -88,12 +115,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -109,6 +138,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 capsnego_SOURCES = capsnego.c
 capsnego_OBJECTS = capsnego.$(OBJEXT)
 capsnego_LDADD = $(LDADD)
@@ -137,6 +167,10 @@
 gstpollstress_OBJECTS = gstpollstress.$(OBJEXT)
 gstpollstress_LDADD = $(LDADD)
 gstpollstress_DEPENDENCIES = $(am__DEPENDENCIES_1)
+gstpoolstress_SOURCES = gstpoolstress.c
+gstpoolstress_OBJECTS = gstpoolstress.$(OBJEXT)
+gstpoolstress_LDADD = $(LDADD)
+gstpoolstress_DEPENDENCIES = $(am__DEPENDENCIES_1)
 init_SOURCES = init.c
 init_OBJECTS = init.$(OBJEXT)
 init_LDADD = $(LDADD)
@@ -145,6 +179,18 @@
 mass_elements_OBJECTS = mass-elements.$(OBJEXT)
 mass_elements_LDADD = $(LDADD)
 mass_elements_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -157,31 +203,44 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = caps.c capsnego.c complexity.c controller.c \
-	gstbufferstress.c gstclockstress.c gstpollstress.c init.c \
-	mass-elements.c
+	gstbufferstress.c gstclockstress.c gstpollstress.c \
+	gstpoolstress.c init.c mass-elements.c
 DIST_SOURCES = caps.c capsnego.c complexity.c controller.c \
-	gstbufferstress.c gstclockstress.c gstpollstress.c init.c \
-	mass-elements.c
+	gstbufferstress.c gstclockstress.c gstpollstress.c \
+	gstpoolstress.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
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -283,15 +342,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -301,11 +356,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -313,6 +366,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -375,6 +429,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -512,30 +567,43 @@
 	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) $(EXTRA_caps_DEPENDENCIES) 
 	@rm -f caps$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(caps_OBJECTS) $(caps_LDADD) $(LIBS)
+
 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) $(EXTRA_complexity_DEPENDENCIES) 
 	@rm -f complexity$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(complexity_OBJECTS) $(complexity_LDADD) $(LIBS)
+
 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) $(EXTRA_gstbufferstress_DEPENDENCIES) 
 	@rm -f gstbufferstress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gstbufferstress_OBJECTS) $(gstbufferstress_LDADD) $(LIBS)
+
 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) $(EXTRA_gstpollstress_DEPENDENCIES) 
 	@rm -f gstpollstress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gstpollstress_OBJECTS) $(gstpollstress_LDADD) $(LIBS)
+
+gstpoolstress$(EXEEXT): $(gstpoolstress_OBJECTS) $(gstpoolstress_DEPENDENCIES) $(EXTRA_gstpoolstress_DEPENDENCIES) 
+	@rm -f gstpoolstress$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gstpoolstress_OBJECTS) $(gstpoolstress_LDADD) $(LIBS)
+
 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) $(EXTRA_mass_elements_DEPENDENCIES) 
 	@rm -f mass-elements$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(mass_elements_OBJECTS) $(mass_elements_LDADD) $(LIBS)
@@ -553,6 +621,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstbufferstress.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstclockstress.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstpollstress.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstpoolstress.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mass-elements.Po@am__quote@
 
@@ -597,26 +666,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -628,15 +686,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -645,6 +699,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -786,18 +855,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/benchmarks/caps.c b/tests/benchmarks/caps.c
index 32d1725..d5c2101 100644
--- a/tests/benchmarks/caps.c
+++ b/tests/benchmarks/caps.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/benchmarks/capsnego.c b/tests/benchmarks/capsnego.c
index 7db7e91..7e6ca39 100644
--- a/tests/benchmarks/capsnego.c
+++ b/tests/benchmarks/capsnego.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* this benchmark recursively builds a pipeline and measures the time to go
diff --git a/tests/benchmarks/complexity.c b/tests/benchmarks/complexity.c
index e275811..2d51f78 100644
--- a/tests/benchmarks/complexity.c
+++ b/tests/benchmarks/complexity.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdlib.h>
diff --git a/tests/benchmarks/controller.c b/tests/benchmarks/controller.c
index 850b4c1..13012ec 100644
--- a/tests/benchmarks/controller.c
+++ b/tests/benchmarks/controller.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdio.h>
diff --git a/tests/benchmarks/gstbufferstress.c b/tests/benchmarks/gstbufferstress.c
index 9f652c3..7871561 100644
--- a/tests/benchmarks/gstbufferstress.c
+++ b/tests/benchmarks/gstbufferstress.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdio.h>
diff --git a/tests/benchmarks/gstclockstress.c b/tests/benchmarks/gstclockstress.c
index e274d36..8dacf03 100644
--- a/tests/benchmarks/gstclockstress.c
+++ b/tests/benchmarks/gstclockstress.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdio.h>
diff --git a/tests/benchmarks/gstpollstress.c b/tests/benchmarks/gstpollstress.c
index 707be0b..09b2b06 100644
--- a/tests/benchmarks/gstpollstress.c
+++ b/tests/benchmarks/gstpollstress.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdio.h>
diff --git a/tests/benchmarks/gstpoolstress.c b/tests/benchmarks/gstpoolstress.c
new file mode 100644
index 0000000..7fa9596
--- /dev/null
+++ b/tests/benchmarks/gstpoolstress.c
@@ -0,0 +1,90 @@
+/* GStreamer
+ * Copyright (C) <2013> 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gst/gst.h>
+#include "gst/glib-compat-private.h"
+
+
+gint
+main (gint argc, gchar * argv[])
+{
+  gint i;
+  GstBuffer *tmp;
+  GstBufferPool *pool;
+  GstClockTime start, end;
+  guint64 nbuffers;
+  GstStructure *conf;
+
+  gst_init (&argc, &argv);
+
+  if (argc != 2) {
+    g_print ("usage: %s <nbuffers>\n", argv[0]);
+    exit (-1);
+  }
+
+  nbuffers = atoi (argv[1]);
+
+  if (nbuffers <= 0) {
+    g_print ("number of buffers must be greater than 0\n");
+    exit (-3);
+  }
+
+  /* Let's just make sure the GstBufferClass is loaded ... */
+  tmp = gst_buffer_new ();
+  gst_buffer_unref (tmp);
+
+  pool = gst_buffer_pool_new ();
+
+  conf = gst_buffer_pool_get_config (pool);
+  gst_buffer_pool_config_set_params (conf, NULL, 1400, 0, 0);
+  gst_buffer_pool_set_config (pool, conf);
+
+  gst_buffer_pool_set_active (pool, TRUE);
+
+  start = gst_util_get_timestamp ();
+  for (i = 0; i < nbuffers; i++) {
+    tmp = gst_buffer_new_allocate (NULL, 1400, NULL);
+    gst_buffer_unref (tmp);
+  }
+  end = gst_util_get_timestamp ();
+  g_print ("*** total %" GST_TIME_FORMAT " - average %" GST_TIME_FORMAT
+      "  - Done creating %" G_GUINT64_FORMAT " buffers\n",
+      GST_TIME_ARGS (end - start),
+      GST_TIME_ARGS ((end - start) / (nbuffers)), nbuffers);
+
+
+  start = gst_util_get_timestamp ();
+  for (i = 0; i < nbuffers; i++) {
+    gst_buffer_pool_acquire_buffer (pool, &tmp, NULL);
+    gst_buffer_unref (tmp);
+  }
+  end = gst_util_get_timestamp ();
+
+  g_print ("*** total %" GST_TIME_FORMAT " - average %" GST_TIME_FORMAT
+      "  - Done creating %" G_GUINT64_FORMAT " buffers\n",
+      GST_TIME_ARGS (end - start),
+      GST_TIME_ARGS ((end - start) / (nbuffers)), nbuffers);
+
+  gst_buffer_pool_set_active (pool, FALSE);
+  gst_object_unref (pool);
+
+  return 0;
+}
diff --git a/tests/benchmarks/init.c b/tests/benchmarks/init.c
index a03f666..3126a2c 100644
--- a/tests/benchmarks/init.c
+++ b/tests/benchmarks/init.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/benchmarks/mass-elements.c b/tests/benchmarks/mass-elements.c
index 826d3d0..cfe6c85 100644
--- a/tests/benchmarks/mass-elements.c
+++ b/tests/benchmarks/mass-elements.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdlib.h>
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index b4880fb..0568d90 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -10,9 +10,9 @@
 TESTS_ENVIRONMENT = \
         GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
         $(REGISTRY_ENVIRONMENT)					\
-        GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
-        GST_PLUGIN_SYSTEM_PATH=					\
-        GST_PLUGIN_PATH=$(top_builddir)/plugins
+        GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
+        GST_PLUGIN_SYSTEM_PATH_1_0=					\
+        GST_PLUGIN_PATH_1_0=$(top_builddir)/plugins
 
 plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
 
@@ -61,7 +61,8 @@
 	gst/gst					\
 	gst/gstbin				\
 	gst/gstchildproxy			\
-	gst/gstcontroller				\
+	gst/gstcontext				\
+	gst/gstcontroller			\
 	gst/gstelement				\
 	gst/gstelementfactory			\
 	gst/gstevent				\
@@ -106,6 +107,7 @@
 	gst/gstmemory				\
 	gst/gstbus				\
 	gst/gstcaps     			\
+	gst/gstcapsfeatures    			\
 	$(CXX_CHECKS)			     	\
 	gst/gstdatetime     			\
 	gst/gstinfo		 		\
@@ -138,6 +140,7 @@
 	libs/collectpads			\
 	libs/gstnetclientclock			\
 	libs/gstnettimeprovider			\
+	libs/gsttestclock			\
 	libs/transform1				\
 	tools/gstinspect
 
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 22baba4..34b2ec4 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,12 +80,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/check.mak
+DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
+	$(top_srcdir)/test-driver
 check_PROGRAMS = $(am__EXEEXT_1) gst/gstatomicqueue$(EXEEXT) \
 	gst/gstbuffer$(EXEEXT) gst/gstbufferlist$(EXEEXT) \
 	gst/gstmeta$(EXEEXT) gst/gstmemory$(EXEEXT) \
-	gst/gstbus$(EXEEXT) gst/gstcaps$(EXEEXT) $(am__EXEEXT_2) \
+	gst/gstbus$(EXEEXT) gst/gstcaps$(EXEEXT) \
+	gst/gstcapsfeatures$(EXEEXT) $(am__EXEEXT_2) \
 	gst/gstdatetime$(EXEEXT) gst/gstinfo$(EXEEXT) \
 	gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
 	gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
@@ -73,8 +102,8 @@
 	$(am__EXEEXT_5) libs/adapter$(EXEEXT) libs/bitreader$(EXEEXT) \
 	libs/bytereader$(EXEEXT) libs/bytewriter$(EXEEXT) \
 	libs/collectpads$(EXEEXT) libs/gstnetclientclock$(EXEEXT) \
-	libs/gstnettimeprovider$(EXEEXT) libs/transform1$(EXEEXT) \
-	tools/gstinspect$(EXEEXT)
+	libs/gstnettimeprovider$(EXEEXT) libs/gsttestclock$(EXEEXT) \
+	libs/transform1$(EXEEXT) tools/gstinspect$(EXEEXT)
 noinst_PROGRAMS =
 subdir = tests/check
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -83,7 +112,6 @@
 	$(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 \
@@ -107,12 +135,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -130,6 +160,7 @@
 @GST_DISABLE_REGISTRY_FALSE@am__EXEEXT_4 = gst/gst$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstbin$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstchildproxy$(EXEEXT) \
+@GST_DISABLE_REGISTRY_FALSE@	gst/gstcontext$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstcontroller$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelement$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelementfactory$(EXEEXT) \
@@ -176,6 +207,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 am__dirstamp = $(am__leading_dot)dirstamp
 elements_fakesink_SOURCES = elements/fakesink.c
 elements_fakesink_OBJECTS = fakesink.$(OBJEXT)
@@ -323,6 +355,12 @@
 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_gstcapsfeatures_SOURCES = gst/gstcapsfeatures.c
+gst_gstcapsfeatures_OBJECTS = gstcapsfeatures.$(OBJEXT)
+gst_gstcapsfeatures_LDADD = $(LDADD)
+gst_gstcapsfeatures_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)
@@ -335,6 +373,12 @@
 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_gstcontext_SOURCES = gst/gstcontext.c
+gst_gstcontext_OBJECTS = gstcontext.$(OBJEXT)
+gst_gstcontext_LDADD = $(LDADD)
+gst_gstcontext_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)
@@ -596,6 +640,12 @@
 libs_gstnettimeprovider_DEPENDENCIES =  \
 	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+libs_gsttestclock_SOURCES = libs/gsttestclock.c
+libs_gsttestclock_OBJECTS = gsttestclock.$(OBJEXT)
+libs_gsttestclock_LDADD = $(LDADD)
+libs_gsttestclock_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_libsabi_SOURCES = libs/libsabi.c
 libs_libsabi_OBJECTS = libsabi.$(OBJEXT)
 libs_libsabi_LDADD = $(LDADD)
@@ -669,6 +719,18 @@
 tools_gstinspect_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_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -681,17 +743,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -700,17 +761,16 @@
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_@AM_V@)
 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 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_@AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-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_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 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 \
@@ -718,36 +778,8 @@
 	elements/tee.c elements/valve.c generic/sinks.c \
 	generic/states.c gst/gst.c gst/gstabi.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/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/collectpads.c \
-	libs/controller.c $(libs_gstlibscpp_SOURCES) \
-	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
-	libs/libsabi.c libs/queuearray.c libs/transform1.c \
-	libs/typefindhelper.c pipelines/cleanup.c \
-	pipelines/parse-disabled.c pipelines/parse-launch.c \
-	pipelines/queue-error.c pipelines/seek.c \
-	pipelines/simple-launch-lines.c pipelines/stress.c \
-	tools/gstinspect.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/gstabi.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/gstcaps.c gst/gstcapsfeatures.c gst/gstchildproxy.c \
+	gst/gstclock.c gst/gstcontext.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 \
@@ -762,8 +794,37 @@
 	libs/bytereader.c libs/bytewriter.c libs/collectpads.c \
 	libs/controller.c $(libs_gstlibscpp_SOURCES) \
 	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
-	libs/libsabi.c libs/queuearray.c libs/transform1.c \
-	libs/typefindhelper.c pipelines/cleanup.c \
+	libs/gsttestclock.c libs/libsabi.c libs/queuearray.c \
+	libs/transform1.c libs/typefindhelper.c pipelines/cleanup.c \
+	pipelines/parse-disabled.c pipelines/parse-launch.c \
+	pipelines/queue-error.c pipelines/seek.c \
+	pipelines/simple-launch-lines.c pipelines/stress.c \
+	tools/gstinspect.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/gstabi.c \
+	gst/gstatomicqueue.c gst/gstbin.c gst/gstbuffer.c \
+	gst/gstbufferlist.c gst/gstbus.c gst/gstcaps.c \
+	gst/gstcapsfeatures.c gst/gstchildproxy.c gst/gstclock.c \
+	gst/gstcontext.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/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/collectpads.c \
+	libs/controller.c $(libs_gstlibscpp_SOURCES) \
+	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
+	libs/gsttestclock.c libs/libsabi.c libs/queuearray.c \
+	libs/transform1.c libs/typefindhelper.c pipelines/cleanup.c \
 	pipelines/parse-disabled.c pipelines/parse-launch.c \
 	pipelines/queue-error.c pipelines/seek.c \
 	pipelines/simple-launch-lines.c pipelines/stress.c \
@@ -774,10 +835,229 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+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__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__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -877,15 +1157,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -895,11 +1171,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -907,6 +1181,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -969,6 +1244,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -1059,7 +1335,6 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-LOOPS = 10
 
 # inspect every plugin feature
 GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
@@ -1071,9 +1346,9 @@
 TESTS_ENVIRONMENT = \
         GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
         $(REGISTRY_ENVIRONMENT)					\
-        GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
-        GST_PLUGIN_SYSTEM_PATH=					\
-        GST_PLUGIN_PATH=$(top_builddir)/plugins
+        GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
+        GST_PLUGIN_SYSTEM_PATH_1_0=					\
+        GST_PLUGIN_PATH_1_0=$(top_builddir)/plugins
 
 
 # the core dumps of some machines have PIDs appended, test registry and
@@ -1096,7 +1371,8 @@
 @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/gstcontext				\
+@GST_DISABLE_REGISTRY_FALSE@	gst/gstcontroller			\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelement				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelementfactory			\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstevent				\
@@ -1225,7 +1501,7 @@
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .cc .lo .o .obj
+.SUFFIXES: .c .cc .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/check.mak $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -1278,264 +1554,358 @@
 elements/$(am__dirstamp):
 	@$(MKDIR_P) elements
 	@: > 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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(EXTRA_gst_gst_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gst$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gst_OBJECTS) $(gst_gst_LDADD) $(LIBS)
+
 gst/gstabi$(EXEEXT): $(gst_gstabi_OBJECTS) $(gst_gstabi_DEPENDENCIES) $(EXTRA_gst_gstabi_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstabi$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstabi_OBJECTS) $(gst_gstabi_LDADD) $(LIBS)
+
 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) $(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) $(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) $(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) $(EXTRA_gst_gstcaps_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstcaps$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstcaps_OBJECTS) $(gst_gstcaps_LDADD) $(LIBS)
+
+gst/gstcapsfeatures$(EXEEXT): $(gst_gstcapsfeatures_OBJECTS) $(gst_gstcapsfeatures_DEPENDENCIES) $(EXTRA_gst_gstcapsfeatures_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gstcapsfeatures$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gstcapsfeatures_OBJECTS) $(gst_gstcapsfeatures_LDADD) $(LIBS)
+
 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) $(EXTRA_gst_gstclock_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstclock$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstclock_OBJECTS) $(gst_gstclock_LDADD) $(LIBS)
+
+gst/gstcontext$(EXEEXT): $(gst_gstcontext_OBJECTS) $(gst_gstcontext_DEPENDENCIES) $(EXTRA_gst_gstcontext_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gstcontext$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gstcontext_OBJECTS) $(gst_gstcontext_LDADD) $(LIBS)
+
 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) $(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) $(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) $(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) $(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) $(EXTRA_gst_gstghostpad_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstghostpad$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstghostpad_OBJECTS) $(gst_gstghostpad_LDADD) $(LIBS)
+
 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) $(EXTRA_gst_gstiterator_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstiterator$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstiterator_OBJECTS) $(gst_gstiterator_LDADD) $(LIBS)
+
 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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(EXTRA_gst_gsttask_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gsttask$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gsttask_OBJECTS) $(gst_gsttask_LDADD) $(LIBS)
+
 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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(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) $(EXTRA_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) $(EXTRA_libs_controller_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/controller$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_controller_OBJECTS) $(libs_controller_LDADD) $(LIBS)
+
 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) $(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) $(EXTRA_libs_gstnettimeprovider_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstnettimeprovider$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_gstnettimeprovider_OBJECTS) $(libs_gstnettimeprovider_LDADD) $(LIBS)
+
+libs/gsttestclock$(EXEEXT): $(libs_gsttestclock_OBJECTS) $(libs_gsttestclock_DEPENDENCIES) $(EXTRA_libs_gsttestclock_DEPENDENCIES) libs/$(am__dirstamp)
+	@rm -f libs/gsttestclock$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(libs_gsttestclock_OBJECTS) $(libs_gsttestclock_LDADD) $(LIBS)
+
 libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) $(EXTRA_libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/libsabi$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_libsabi_OBJECTS) $(libs_libsabi_LDADD) $(LIBS)
+
 libs/queuearray$(EXEEXT): $(libs_queuearray_OBJECTS) $(libs_queuearray_DEPENDENCIES) $(EXTRA_libs_queuearray_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/queuearray$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_queuearray_OBJECTS) $(libs_queuearray_LDADD) $(LIBS)
+
 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) $(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) $(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) $(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) $(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) $(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/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) $(EXTRA_pipelines_stress_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/stress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_stress_OBJECTS) $(pipelines_stress_LDADD) $(LIBS)
 tools/$(am__dirstamp):
 	@$(MKDIR_P) tools
 	@: > tools/$(am__dirstamp)
+
 tools/gstinspect$(EXEEXT): $(tools_gstinspect_OBJECTS) $(tools_gstinspect_DEPENDENCIES) $(EXTRA_tools_gstinspect_DEPENDENCIES) tools/$(am__dirstamp)
 	@rm -f tools/gstinspect$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(tools_gstinspect_OBJECTS) $(tools_gstinspect_LDADD) $(LIBS)
@@ -1570,8 +1940,10 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstbufferlist.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstbus.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstcaps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstcapsfeatures.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)/gstcontext.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@
@@ -1604,6 +1976,7 @@
 @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)/gsttestclock.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@
@@ -1986,6 +2359,20 @@
 @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 gstcaps.obj `if test -f 'gst/gstcaps.c'; then $(CYGPATH_W) 'gst/gstcaps.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcaps.c'; fi`
 
+gstcapsfeatures.o: gst/gstcapsfeatures.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcapsfeatures.o -MD -MP -MF $(DEPDIR)/gstcapsfeatures.Tpo -c -o gstcapsfeatures.o `test -f 'gst/gstcapsfeatures.c' || echo '$(srcdir)/'`gst/gstcapsfeatures.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcapsfeatures.Tpo $(DEPDIR)/gstcapsfeatures.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcapsfeatures.c' object='gstcapsfeatures.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 gstcapsfeatures.o `test -f 'gst/gstcapsfeatures.c' || echo '$(srcdir)/'`gst/gstcapsfeatures.c
+
+gstcapsfeatures.obj: gst/gstcapsfeatures.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcapsfeatures.obj -MD -MP -MF $(DEPDIR)/gstcapsfeatures.Tpo -c -o gstcapsfeatures.obj `if test -f 'gst/gstcapsfeatures.c'; then $(CYGPATH_W) 'gst/gstcapsfeatures.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcapsfeatures.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcapsfeatures.Tpo $(DEPDIR)/gstcapsfeatures.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcapsfeatures.c' object='gstcapsfeatures.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 gstcapsfeatures.obj `if test -f 'gst/gstcapsfeatures.c'; then $(CYGPATH_W) 'gst/gstcapsfeatures.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcapsfeatures.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
@@ -2014,6 +2401,20 @@
 @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 gstclock.obj `if test -f 'gst/gstclock.c'; then $(CYGPATH_W) 'gst/gstclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstclock.c'; fi`
 
+gstcontext.o: gst/gstcontext.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcontext.o -MD -MP -MF $(DEPDIR)/gstcontext.Tpo -c -o gstcontext.o `test -f 'gst/gstcontext.c' || echo '$(srcdir)/'`gst/gstcontext.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcontext.Tpo $(DEPDIR)/gstcontext.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcontext.c' object='gstcontext.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 gstcontext.o `test -f 'gst/gstcontext.c' || echo '$(srcdir)/'`gst/gstcontext.c
+
+gstcontext.obj: gst/gstcontext.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcontext.obj -MD -MP -MF $(DEPDIR)/gstcontext.Tpo -c -o gstcontext.obj `if test -f 'gst/gstcontext.c'; then $(CYGPATH_W) 'gst/gstcontext.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcontext.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcontext.Tpo $(DEPDIR)/gstcontext.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcontext.c' object='gstcontext.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 gstcontext.obj `if test -f 'gst/gstcontext.c'; then $(CYGPATH_W) 'gst/gstcontext.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcontext.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
@@ -2602,6 +3003,20 @@
 @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 gstnettimeprovider.obj `if test -f 'libs/gstnettimeprovider.c'; then $(CYGPATH_W) 'libs/gstnettimeprovider.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnettimeprovider.c'; fi`
 
+gsttestclock.o: libs/gsttestclock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttestclock.o -MD -MP -MF $(DEPDIR)/gsttestclock.Tpo -c -o gsttestclock.o `test -f 'libs/gsttestclock.c' || echo '$(srcdir)/'`libs/gsttestclock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttestclock.Tpo $(DEPDIR)/gsttestclock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/gsttestclock.c' object='gsttestclock.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 gsttestclock.o `test -f 'libs/gsttestclock.c' || echo '$(srcdir)/'`libs/gsttestclock.c
+
+gsttestclock.obj: libs/gsttestclock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttestclock.obj -MD -MP -MF $(DEPDIR)/gsttestclock.Tpo -c -o gsttestclock.obj `if test -f 'libs/gsttestclock.c'; then $(CYGPATH_W) 'libs/gsttestclock.c'; else $(CYGPATH_W) '$(srcdir)/libs/gsttestclock.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttestclock.Tpo $(DEPDIR)/gsttestclock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/gsttestclock.c' object='gsttestclock.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 gsttestclock.obj `if test -f 'libs/gsttestclock.c'; then $(CYGPATH_W) 'libs/gsttestclock.c'; else $(CYGPATH_W) '$(srcdir)/libs/gsttestclock.c'; fi`
+
 libsabi.o: libs/libsabi.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsabi.o -MD -MP -MF $(DEPDIR)/libsabi.Tpo -c -o libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsabi.Tpo $(DEPDIR)/libsabi.Po
@@ -2831,26 +3246,15 @@
 	-rm -rf pipelines/.libs pipelines/_libs
 	-rm -rf tools/.libs tools/_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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -2862,15 +3266,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -2879,102 +3279,775 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+	  fi; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
 	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
-	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      color_start= color_end=; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
-	    else \
-	      skipped="($$skip tests were not run)"; \
-	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  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
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(check_PROGRAMS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+gst/gstabi.log: gst/gstabi$(EXEEXT)
+	@p='gst/gstabi$(EXEEXT)'; \
+	b='gst/gstabi'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstatomicqueue.log: gst/gstatomicqueue$(EXEEXT)
+	@p='gst/gstatomicqueue$(EXEEXT)'; \
+	b='gst/gstatomicqueue'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstbuffer.log: gst/gstbuffer$(EXEEXT)
+	@p='gst/gstbuffer$(EXEEXT)'; \
+	b='gst/gstbuffer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstbufferlist.log: gst/gstbufferlist$(EXEEXT)
+	@p='gst/gstbufferlist$(EXEEXT)'; \
+	b='gst/gstbufferlist'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstmeta.log: gst/gstmeta$(EXEEXT)
+	@p='gst/gstmeta$(EXEEXT)'; \
+	b='gst/gstmeta'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstmemory.log: gst/gstmemory$(EXEEXT)
+	@p='gst/gstmemory$(EXEEXT)'; \
+	b='gst/gstmemory'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstbus.log: gst/gstbus$(EXEEXT)
+	@p='gst/gstbus$(EXEEXT)'; \
+	b='gst/gstbus'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstcaps.log: gst/gstcaps$(EXEEXT)
+	@p='gst/gstcaps$(EXEEXT)'; \
+	b='gst/gstcaps'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstcapsfeatures.log: gst/gstcapsfeatures$(EXEEXT)
+	@p='gst/gstcapsfeatures$(EXEEXT)'; \
+	b='gst/gstcapsfeatures'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstcpp.log: gst/gstcpp$(EXEEXT)
+	@p='gst/gstcpp$(EXEEXT)'; \
+	b='gst/gstcpp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/gstlibscpp.log: libs/gstlibscpp$(EXEEXT)
+	@p='libs/gstlibscpp$(EXEEXT)'; \
+	b='libs/gstlibscpp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstdatetime.log: gst/gstdatetime$(EXEEXT)
+	@p='gst/gstdatetime$(EXEEXT)'; \
+	b='gst/gstdatetime'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstinfo.log: gst/gstinfo$(EXEEXT)
+	@p='gst/gstinfo$(EXEEXT)'; \
+	b='gst/gstinfo'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstiterator.log: gst/gstiterator$(EXEEXT)
+	@p='gst/gstiterator$(EXEEXT)'; \
+	b='gst/gstiterator'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstmessage.log: gst/gstmessage$(EXEEXT)
+	@p='gst/gstmessage$(EXEEXT)'; \
+	b='gst/gstmessage'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstminiobject.log: gst/gstminiobject$(EXEEXT)
+	@p='gst/gstminiobject$(EXEEXT)'; \
+	b='gst/gstminiobject'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstobject.log: gst/gstobject$(EXEEXT)
+	@p='gst/gstobject$(EXEEXT)'; \
+	b='gst/gstobject'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstpad.log: gst/gstpad$(EXEEXT)
+	@p='gst/gstpad$(EXEEXT)'; \
+	b='gst/gstpad'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstparamspecs.log: gst/gstparamspecs$(EXEEXT)
+	@p='gst/gstparamspecs$(EXEEXT)'; \
+	b='gst/gstparamspecs'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstpipeline.log: gst/gstpipeline$(EXEEXT)
+	@p='gst/gstpipeline$(EXEEXT)'; \
+	b='gst/gstpipeline'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstpoll.log: gst/gstpoll$(EXEEXT)
+	@p='gst/gstpoll$(EXEEXT)'; \
+	b='gst/gstpoll'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstsegment.log: gst/gstsegment$(EXEEXT)
+	@p='gst/gstsegment$(EXEEXT)'; \
+	b='gst/gstsegment'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstsystemclock.log: gst/gstsystemclock$(EXEEXT)
+	@p='gst/gstsystemclock$(EXEEXT)'; \
+	b='gst/gstsystemclock'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstclock.log: gst/gstclock$(EXEEXT)
+	@p='gst/gstclock$(EXEEXT)'; \
+	b='gst/gstclock'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gststructure.log: gst/gststructure$(EXEEXT)
+	@p='gst/gststructure$(EXEEXT)'; \
+	b='gst/gststructure'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gsttag.log: gst/gsttag$(EXEEXT)
+	@p='gst/gsttag$(EXEEXT)'; \
+	b='gst/gsttag'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gsttagsetter.log: gst/gsttagsetter$(EXEEXT)
+	@p='gst/gsttagsetter$(EXEEXT)'; \
+	b='gst/gsttagsetter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gsttask.log: gst/gsttask$(EXEEXT)
+	@p='gst/gsttask$(EXEEXT)'; \
+	b='gst/gsttask'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gsttoc.log: gst/gsttoc$(EXEEXT)
+	@p='gst/gsttoc$(EXEEXT)'; \
+	b='gst/gsttoc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gsttocsetter.log: gst/gsttocsetter$(EXEEXT)
+	@p='gst/gsttocsetter$(EXEEXT)'; \
+	b='gst/gsttocsetter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstvalue.log: gst/gstvalue$(EXEEXT)
+	@p='gst/gstvalue$(EXEEXT)'; \
+	b='gst/gstvalue'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+generic/states.log: generic/states$(EXEEXT)
+	@p='generic/states$(EXEEXT)'; \
+	b='generic/states'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/simple-launch-lines.log: pipelines/simple-launch-lines$(EXEEXT)
+	@p='pipelines/simple-launch-lines$(EXEEXT)'; \
+	b='pipelines/simple-launch-lines'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/cleanup.log: pipelines/cleanup$(EXEEXT)
+	@p='pipelines/cleanup$(EXEEXT)'; \
+	b='pipelines/cleanup'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/parse-launch.log: pipelines/parse-launch$(EXEEXT)
+	@p='pipelines/parse-launch$(EXEEXT)'; \
+	b='pipelines/parse-launch'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/parse-disabled.log: pipelines/parse-disabled$(EXEEXT)
+	@p='pipelines/parse-disabled$(EXEEXT)'; \
+	b='pipelines/parse-disabled'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gst.log: gst/gst$(EXEEXT)
+	@p='gst/gst$(EXEEXT)'; \
+	b='gst/gst'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstbin.log: gst/gstbin$(EXEEXT)
+	@p='gst/gstbin$(EXEEXT)'; \
+	b='gst/gstbin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstchildproxy.log: gst/gstchildproxy$(EXEEXT)
+	@p='gst/gstchildproxy$(EXEEXT)'; \
+	b='gst/gstchildproxy'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstcontext.log: gst/gstcontext$(EXEEXT)
+	@p='gst/gstcontext$(EXEEXT)'; \
+	b='gst/gstcontext'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstcontroller.log: gst/gstcontroller$(EXEEXT)
+	@p='gst/gstcontroller$(EXEEXT)'; \
+	b='gst/gstcontroller'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstelement.log: gst/gstelement$(EXEEXT)
+	@p='gst/gstelement$(EXEEXT)'; \
+	b='gst/gstelement'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstelementfactory.log: gst/gstelementfactory$(EXEEXT)
+	@p='gst/gstelementfactory$(EXEEXT)'; \
+	b='gst/gstelementfactory'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstevent.log: gst/gstevent$(EXEEXT)
+	@p='gst/gstevent$(EXEEXT)'; \
+	b='gst/gstevent'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstghostpad.log: gst/gstghostpad$(EXEEXT)
+	@p='gst/gstghostpad$(EXEEXT)'; \
+	b='gst/gstghostpad'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstplugin.log: gst/gstplugin$(EXEEXT)
+	@p='gst/gstplugin$(EXEEXT)'; \
+	b='gst/gstplugin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstpreset.log: gst/gstpreset$(EXEEXT)
+	@p='gst/gstpreset$(EXEEXT)'; \
+	b='gst/gstpreset'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstquery.log: gst/gstquery$(EXEEXT)
+	@p='gst/gstquery$(EXEEXT)'; \
+	b='gst/gstquery'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstregistry.log: gst/gstregistry$(EXEEXT)
+	@p='gst/gstregistry$(EXEEXT)'; \
+	b='gst/gstregistry'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gsturi.log: gst/gsturi$(EXEEXT)
+	@p='gst/gsturi$(EXEEXT)'; \
+	b='gst/gsturi'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstutils.log: gst/gstutils$(EXEEXT)
+	@p='gst/gstutils$(EXEEXT)'; \
+	b='gst/gstutils'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+generic/sinks.log: generic/sinks$(EXEEXT)
+	@p='generic/sinks$(EXEEXT)'; \
+	b='generic/sinks'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/capsfilter.log: elements/capsfilter$(EXEEXT)
+	@p='elements/capsfilter$(EXEEXT)'; \
+	b='elements/capsfilter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/fakesink.log: elements/fakesink$(EXEEXT)
+	@p='elements/fakesink$(EXEEXT)'; \
+	b='elements/fakesink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/fakesrc.log: elements/fakesrc$(EXEEXT)
+	@p='elements/fakesrc$(EXEEXT)'; \
+	b='elements/fakesrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/fdsrc.log: elements/fdsrc$(EXEEXT)
+	@p='elements/fdsrc$(EXEEXT)'; \
+	b='elements/fdsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/filesink.log: elements/filesink$(EXEEXT)
+	@p='elements/filesink$(EXEEXT)'; \
+	b='elements/filesink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/filesrc.log: elements/filesrc$(EXEEXT)
+	@p='elements/filesrc$(EXEEXT)'; \
+	b='elements/filesrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/funnel.log: elements/funnel$(EXEEXT)
+	@p='elements/funnel$(EXEEXT)'; \
+	b='elements/funnel'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/identity.log: elements/identity$(EXEEXT)
+	@p='elements/identity$(EXEEXT)'; \
+	b='elements/identity'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/multiqueue.log: elements/multiqueue$(EXEEXT)
+	@p='elements/multiqueue$(EXEEXT)'; \
+	b='elements/multiqueue'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/selector.log: elements/selector$(EXEEXT)
+	@p='elements/selector$(EXEEXT)'; \
+	b='elements/selector'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/tee.log: elements/tee$(EXEEXT)
+	@p='elements/tee$(EXEEXT)'; \
+	b='elements/tee'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/queue.log: elements/queue$(EXEEXT)
+	@p='elements/queue$(EXEEXT)'; \
+	b='elements/queue'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/queue2.log: elements/queue2$(EXEEXT)
+	@p='elements/queue2$(EXEEXT)'; \
+	b='elements/queue2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/valve.log: elements/valve$(EXEEXT)
+	@p='elements/valve$(EXEEXT)'; \
+	b='elements/valve'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/basesrc.log: libs/basesrc$(EXEEXT)
+	@p='libs/basesrc$(EXEEXT)'; \
+	b='libs/basesrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/basesink.log: libs/basesink$(EXEEXT)
+	@p='libs/basesink$(EXEEXT)'; \
+	b='libs/basesink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/controller.log: libs/controller$(EXEEXT)
+	@p='libs/controller$(EXEEXT)'; \
+	b='libs/controller'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/queuearray.log: libs/queuearray$(EXEEXT)
+	@p='libs/queuearray$(EXEEXT)'; \
+	b='libs/queuearray'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/typefindhelper.log: libs/typefindhelper$(EXEEXT)
+	@p='libs/typefindhelper$(EXEEXT)'; \
+	b='libs/typefindhelper'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/seek.log: pipelines/seek$(EXEEXT)
+	@p='pipelines/seek$(EXEEXT)'; \
+	b='pipelines/seek'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/stress.log: pipelines/stress$(EXEEXT)
+	@p='pipelines/stress$(EXEEXT)'; \
+	b='pipelines/stress'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/queue-error.log: pipelines/queue-error$(EXEEXT)
+	@p='pipelines/queue-error$(EXEEXT)'; \
+	b='pipelines/queue-error'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/libsabi.log: libs/libsabi$(EXEEXT)
+	@p='libs/libsabi$(EXEEXT)'; \
+	b='libs/libsabi'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/adapter.log: libs/adapter$(EXEEXT)
+	@p='libs/adapter$(EXEEXT)'; \
+	b='libs/adapter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/bitreader.log: libs/bitreader$(EXEEXT)
+	@p='libs/bitreader$(EXEEXT)'; \
+	b='libs/bitreader'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/bytereader.log: libs/bytereader$(EXEEXT)
+	@p='libs/bytereader$(EXEEXT)'; \
+	b='libs/bytereader'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/bytewriter.log: libs/bytewriter$(EXEEXT)
+	@p='libs/bytewriter$(EXEEXT)'; \
+	b='libs/bytewriter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/collectpads.log: libs/collectpads$(EXEEXT)
+	@p='libs/collectpads$(EXEEXT)'; \
+	b='libs/collectpads'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/gstnetclientclock.log: libs/gstnetclientclock$(EXEEXT)
+	@p='libs/gstnetclientclock$(EXEEXT)'; \
+	b='libs/gstnetclientclock'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/gstnettimeprovider.log: libs/gstnettimeprovider$(EXEEXT)
+	@p='libs/gstnettimeprovider$(EXEEXT)'; \
+	b='libs/gstnettimeprovider'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/gsttestclock.log: libs/gsttestclock$(EXEEXT)
+	@p='libs/gsttestclock$(EXEEXT)'; \
+	b='libs/gsttestclock'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/transform1.log: libs/transform1$(EXEEXT)
+	@p='libs/transform1$(EXEEXT)'; \
+	b='libs/transform1'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+tools/gstinspect.log: tools/gstinspect$(EXEEXT)
+	@p='tools/gstinspect$(EXEEXT)'; \
+	b='tools/gstinspect'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@	@p='$<'; \
+@am__EXEEXT_TRUE@	$(am__set_b); \
+@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -3032,6 +4105,9 @@
 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 	fi
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -3122,19 +4198,20 @@
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
 	clean-checkPROGRAMS clean-generic clean-libtool clean-local \
-	clean-noinstPROGRAMS 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-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
+	clean-noinstPROGRAMS cscopelist-am ctags ctags-am 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-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 recheck tags tags-am uninstall \
+	uninstall-am
 
 
 # keep target around, since it's referenced in the modules' Makefiles
@@ -3147,6 +4224,8 @@
 @HAVE_VALGRIND_FALSE@check-valgrind:
 @HAVE_VALGRIND_FALSE@	@true
 
+LOOPS ?= 10
+
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
 %.check: %
@@ -3208,6 +4287,17 @@
 	--gen-suppressions=all					\
 	./$* 2>&1 | tee suppressions.log
 
+# valgrind torture any given test
+%.valgrind-torture: %
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) $*.valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind any given test until failure by running make test.valgrind-forever
 %.valgrind-forever: %
 	@while $(MAKE) $*.valgrind; do				\
@@ -3220,9 +4310,31 @@
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
 
+%.lcov-reset:
+	$(MAKE) $*.lcov-run
+	$(MAKE) $*.lcov-report
+
+%.lcov: %
+	$(MAKE) $*.lcov-reset
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-clean:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) -C $(top_builddir) lcov-clean
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-run:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) $*.lcov-clean
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) $*.check
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-report:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) -C $(top_builddir) lcov-report
+@GST_GCOV_ENABLED_FALSE@%.lcov-run:
+@GST_GCOV_ENABLED_FALSE@	echo "Need to reconfigure with --enable-gcov"
+
+@GST_GCOV_ENABLED_FALSE@%.lcov-report:
+@GST_GCOV_ENABLED_FALSE@	echo "Need to reconfigure with --enable-gcov"
+
 # torture tests
 torture: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Torturing tests ..."
 	@for i in `seq 1 $(LOOPS)`; do				\
 		$(MAKE) check ||				\
@@ -3235,7 +4347,7 @@
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -3261,6 +4373,29 @@
 		false;							\
 	fi
 
+# valgrind all tests until failure
+valgrind-forever: $(TESTS)
+	-rm test-registry.*
+	@echo "Forever valgrinding tests ..."
+	@while true; do						\
+		$(MAKE) valgrind ||				\
+		(echo "Failure"; exit 1) ||			\
+		exit 1;						\
+	done
+
+# valgrind torture all tests
+valgrind-torture: $(TESTS)
+	-rm test-registry.*
+	@echo "Torturing and valgrinding tests ..."
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind all tests and generate suppressions
 valgrind.gen-suppressions: $(TESTS)
 	@echo "Valgrinding tests ..."
@@ -3297,10 +4432,13 @@
 	@echo "make (dir)/(test).gdb              -- start up gdb for the given test"
 	@echo
 	@echo "make valgrind                      -- valgrind all tests"
+	@echo "make valgrind-forever              -- valgrind all tests forever"
+	@echo "make valgrind-torture              -- valgrind all tests $(LOOPS) times"
 	@echo "make valgrind.gen-suppressions     -- generate suppressions for all tests"
 	@echo "                                      and save to suppressions.log"
 	@echo "make (dir)/(test).valgrind         -- valgrind the given test"
 	@echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever"
+	@echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times"
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
diff --git a/tests/check/elements/capsfilter.c b/tests/check/elements/capsfilter.c
index cea6eac..3e1d0e2 100644
--- a/tests/check/elements/capsfilter.c
+++ b/tests/check/elements/capsfilter.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/fakesink.c b/tests/check/elements/fakesink.c
index 8a6bfa6..639905c 100644
--- a/tests/check/elements/fakesink.c
+++ b/tests/check/elements/fakesink.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -98,6 +98,8 @@
   ret = gst_element_set_state (sink, GST_STATE_PAUSED);
   fail_unless (ret == GST_STATE_CHANGE_ASYNC);
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
   /* send segment */
   {
     GstEvent *event;
@@ -262,6 +264,8 @@
   ret = gst_element_set_state (pipeline, GST_STATE_PAUSED);
   fail_unless (ret == GST_STATE_CHANGE_ASYNC);
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
   /* send segment */
   {
     GstEvent *event;
@@ -475,6 +479,8 @@
     fail_unless (eret == TRUE);
   }
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
   /* send segment, this should now work again */
   {
     GstEvent *event;
@@ -540,6 +546,8 @@
   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   fail_unless (ret == GST_STATE_CHANGE_ASYNC);
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
   /* send segment, this should work */
   {
     GstEvent *event;
@@ -645,6 +653,8 @@
   qret = gst_element_query_position (sink, GST_FORMAT_TIME, &qcur);
   fail_unless (qret == FALSE);
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
   /* send segment, this should work */
   {
     GstSegment segment;
diff --git a/tests/check/elements/fakesrc.c b/tests/check/elements/fakesrc.c
index decc3af..55605f7 100644
--- a/tests/check/elements/fakesrc.c
+++ b/tests/check/elements/fakesrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/elements/fdsrc.c b/tests/check/elements/fdsrc.c
index 06ba059..12e9d10 100644
--- a/tests/check/elements/fdsrc.c
+++ b/tests/check/elements/fdsrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/elements/filesink.c b/tests/check/elements/filesink.c
index f432402..a28c893 100644
--- a/tests/check/elements/filesink.c
+++ b/tests/check/elements/filesink.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -143,6 +143,9 @@
   gst_query_unref (seeking_query);
 #endif
 
+  fail_unless (gst_pad_push_event (mysrcpad,
+          gst_event_new_stream_start ("test")));
+
   gst_segment_init (&segment, GST_FORMAT_BYTES);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
 
diff --git a/tests/check/elements/filesrc.c b/tests/check/elements/filesrc.c
index cc35a4d..4e760f8 100644
--- a/tests/check/elements/filesrc.c
+++ b/tests/check/elements/filesrc.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/elements/funnel.c b/tests/check/elements/funnel.c
index 3aaff1a..fd41a73 100644
--- a/tests/check/elements/funnel.c
+++ b/tests/check/elements/funnel.c
@@ -57,15 +57,16 @@
   td->mysink = gst_pad_new ("sink", GST_PAD_SINK);
   gst_pad_set_chain_function (td->mysink, chain_func);
   gst_pad_set_active (td->mysink, TRUE);
-  gst_pad_set_caps (td->mysink, td->mycaps);
 
   td->mysrc1 = gst_pad_new ("src1", GST_PAD_SRC);
   gst_pad_set_active (td->mysrc1, TRUE);
-  gst_pad_set_caps (td->mysrc1, td->mycaps);
+  gst_check_setup_events_with_stream_id (td->mysrc1, td->funnel, td->mycaps,
+      GST_FORMAT_BYTES, "test1");
 
   td->mysrc2 = gst_pad_new ("src2", GST_PAD_SRC);
   gst_pad_set_active (td->mysrc2, TRUE);
-  gst_pad_set_caps (td->mysrc2, td->mycaps);
+  gst_check_setup_events_with_stream_id (td->mysrc2, td->funnel, td->mycaps,
+      GST_FORMAT_BYTES, "test2");
 
   fail_unless (GST_PAD_LINK_SUCCESSFUL (gst_pad_link (td->funnelsrc,
               td->mysink)));
@@ -118,10 +119,6 @@
 GST_START_TEST (test_funnel_simple)
 {
   struct TestData td;
-#if 0
-  GstBuffer *buf1 = NULL;
-  GstBuffer *buf2 = NULL;
-#endif
 
   setup_test_objects (&td, chain_ok);
 
@@ -133,18 +130,6 @@
 
   fail_unless (bufcount == 2);
 
-#if 0
-  fail_unless (gst_pad_alloc_buffer (td.mysrc1, 0, 1024, td.mycaps,
-          &buf1) == GST_FLOW_OK);
-  fail_unless (gst_pad_alloc_buffer (td.mysrc2, 1024, 1024, td.mycaps,
-          &buf2) == GST_FLOW_OK);
-
-  fail_unless (alloccount == 2);
-
-  gst_buffer_unref (buf1);
-  gst_buffer_unref (buf2);
-#endif
-
   release_test_objects (&td);
 }
 
@@ -164,6 +149,7 @@
 GST_START_TEST (test_funnel_eos)
 {
   struct TestData td;
+  GstSegment segment;
 
   setup_test_objects (&td, chain_ok);
 
@@ -196,6 +182,10 @@
   fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_flush_start ()));
   fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_flush_stop (TRUE)));
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (td.mysrc1, gst_event_new_segment (&segment));
+  gst_pad_push_event (td.mysrc2, gst_event_new_segment (&segment));
+
   fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_OK);
   fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_EOS);
 
@@ -214,7 +204,7 @@
               td.funnelsink11)));
 
   /* This will fail because everything is EOS already */
-  fail_if (gst_pad_push_event (td.mysrc1, gst_event_new_eos ()));
+  fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_eos ()));
   fail_unless (num_eos == 2);
 
   fail_unless (gst_pad_unlink (td.mysrc1, td.funnelsink11));
@@ -236,11 +226,6 @@
 {
   Suite *s = suite_create ("funnel");
   TCase *tc_chain;
-  GLogLevelFlags fatal_mask;
-
-  fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK);
-  fatal_mask |= G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL;
-  g_log_set_always_fatal (fatal_mask);
 
   tc_chain = tcase_create ("funnel simple");
   tcase_add_test (tc_chain, test_funnel_simple);
diff --git a/tests/check/elements/identity.c b/tests/check/elements/identity.c
index 270fbdd..2beb987 100644
--- a/tests/check/elements/identity.c
+++ b/tests/check/elements/identity.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -46,12 +46,10 @@
 {
   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 *
@@ -87,12 +85,17 @@
 {
   GstElement *identity;
   GstBuffer *buffer;
+  GstSegment segment;
 
   identity = setup_identity ();
   fail_unless (gst_element_set_state (identity,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
+
   buffer = gst_buffer_new_and_alloc (4);
   ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
 
diff --git a/tests/check/elements/multiqueue.c b/tests/check/elements/multiqueue.c
index 3e6a919..651ff7d 100644
--- a/tests/check/elements/multiqueue.c
+++ b/tests/check/elements/multiqueue.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -420,6 +420,9 @@
   gint i;
   const gint NPADS = 5;
   const gint NBUFFERS = 1000;
+  GstSegment segment;
+
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
 
   g_mutex_init (&mutex);
   g_cond_init (&cond);
@@ -456,6 +459,9 @@
 
     gst_pad_set_active (inputpads[i], TRUE);
 
+    gst_pad_push_event (inputpads[i], gst_event_new_stream_start ("test"));
+    gst_pad_push_event (inputpads[i], gst_event_new_segment (&segment));
+
     mq_srcpad = mq_sinkpad_to_srcpad (mq, mq_sinkpad);
 
     name = g_strdup_printf ("dummysink%d", i);
@@ -596,6 +602,8 @@
       "extra-size-bytes", (guint) 0,
       "extra-size-buffers", (guint) 0, "extra-size-time", (guint64) 0, NULL);
 
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
   /* Construct 2 dummy output pads. */
   for (i = 0; i < 2; i++) {
     GstPad *mq_srcpad, *mq_sinkpad;
@@ -612,6 +620,9 @@
 
     gst_pad_set_active (inputpads[i], TRUE);
 
+    gst_pad_push_event (inputpads[i], gst_event_new_stream_start ("test"));
+    gst_pad_push_event (inputpads[i], gst_event_new_segment (&segment));
+
     mq_srcpad = mq_sinkpad_to_srcpad (mq, mq_sinkpad);
 
     name = g_strdup_printf ("dummysink%d", i);
@@ -644,12 +655,6 @@
 
   gst_element_set_state (pipe, GST_STATE_PLAYING);
 
-  /* Push 2 new segment events */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  event = gst_event_new_segment (&segment);
-  gst_pad_push_event (inputpads[0], gst_event_ref (event));
-  gst_pad_push_event (inputpads[1], event);
-
   for (i = 0; i < NBUFFERS; i++) {
     GstBuffer *buf;
     GstFlowReturn ret;
diff --git a/tests/check/elements/queue.c b/tests/check/elements/queue.c
index 386bfb4..9a2ebcf 100644
--- a/tests/check/elements/queue.c
+++ b/tests/check/elements/queue.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -223,6 +223,7 @@
   GstBuffer *buffer2;
   GstBuffer *buffer3;
   GstBuffer *buffer;
+  GstSegment segment;
 
   g_signal_connect (queue, "overrun",
       G_CALLBACK (queue_overrun_link_and_activate), NULL);
@@ -239,7 +240,9 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
   gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
 
   fail_unless (underrun_count == 1);
   fail_unless (overrun_count == 0);
@@ -316,6 +319,7 @@
   GstBuffer *buffer2;
   GstBuffer *buffer3;
   GstBuffer *buffer;
+  GstSegment segment;
 
   g_signal_connect (queue, "overrun", G_CALLBACK (queue_overrun), NULL);
   g_object_set (G_OBJECT (queue), "max-size-buffers", 2, "leaky", 1, NULL);
@@ -331,7 +335,9 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
   gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
 
   fail_unless (overrun_count == 0);
   fail_unless (underrun_count == 1);
@@ -402,6 +408,7 @@
   GstBuffer *buffer2;
   GstBuffer *buffer3;
   GstBuffer *buffer;
+  GstSegment segment;
 
   g_signal_connect (queue, "overrun", G_CALLBACK (queue_overrun), NULL);
   g_object_set (G_OBJECT (queue), "max-size-buffers", 2, "leaky", 2, NULL);
@@ -417,7 +424,9 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
   gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
 
   fail_unless (overrun_count == 0);
   fail_unless (underrun_count == 1);
@@ -483,6 +492,7 @@
 {
   GstBuffer *buffer = NULL;
   GstClockTime time;
+  GstSegment segment;
 
   g_signal_connect (queue, "overrun",
       G_CALLBACK (queue_overrun_link_and_activate), NULL);
@@ -500,7 +510,9 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
   gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
 
   /* push buffer without duration */
   buffer = gst_buffer_new_and_alloc (4);
@@ -630,6 +642,62 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_sticky_not_linked)
+{
+  GstEvent *event;
+  GstSegment segment;
+  gboolean ret;
+  GstFlowReturn flow_ret;
+
+  GST_DEBUG ("starting");
+
+  g_object_set (queue, "max-size-buffers", 1, NULL);
+
+  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 ("test"));
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  segment.start = 1 * GST_SECOND;
+  segment.stop = 5 * GST_SECOND;
+  segment.time = 0;
+  segment.position = 1 * GST_SECOND;
+
+  event = gst_event_new_segment (&segment);
+  ret = gst_pad_push_event (mysrcpad, event);
+  fail_unless (ret == TRUE);
+
+  /* the first few buffers can return OK as they are queued and gst_queue_loop
+   * is woken up, tries to push and sets ->srcresult to NOT_LINKED
+   */
+  flow_ret = GST_FLOW_OK;
+  while (flow_ret != GST_FLOW_NOT_LINKED)
+    flow_ret = gst_pad_push (mysrcpad, gst_buffer_new ());
+
+  /* send a new sticky event so that it will be pushed on the next gst_pad_push
+   */
+  event = gst_event_new_segment (&segment);
+  ret = gst_pad_push_event (mysrcpad, event);
+  fail_unless (ret == TRUE);
+
+  /* make sure that gst_queue_sink_event doesn't return FALSE if the queue is
+   * unlinked, as that would make gst_pad_push return ERROR
+   */
+  flow_ret = gst_pad_push (mysrcpad, gst_buffer_new ());
+  fail_unless_equals_int (flow_ret, GST_FLOW_NOT_LINKED);
+
+  GST_DEBUG ("stopping");
+  fail_unless (gst_element_set_state (queue,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
+}
+
+GST_END_TEST;
+
 #if 0
 static gboolean
 event_equals_newsegment (GstEvent * event, gboolean update, gdouble rate,
@@ -844,6 +912,7 @@
 #if 0
   tcase_add_test (tc_chain, test_newsegment);
 #endif
+  tcase_add_test (tc_chain, test_sticky_not_linked);
 
   return s;
 }
diff --git a/tests/check/elements/queue2.c b/tests/check/elements/queue2.c
index c03ca1d..18170c1 100644
--- a/tests/check/elements/queue2.c
+++ b/tests/check/elements/queue2.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -225,6 +225,7 @@
   GstBuffer *buffer;
   GstPad *sinkpad, *srcpad;
   GThread *thread;
+  GstSegment segment;
 
   queue2 = gst_element_factory_make ("queue2", NULL);
   sinkpad = gst_element_get_static_pad (queue2, "sink");
@@ -238,6 +239,10 @@
   gst_pad_activate_mode (srcpad, GST_PAD_MODE_PULL, TRUE);
   gst_element_set_state (queue2, GST_STATE_PLAYING);
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+  gst_pad_send_event (sinkpad, gst_event_new_segment (&segment));
+
   /* fill up the buffer */
   buffer = gst_buffer_new_and_alloc (4 * 1024);
   fail_unless (gst_pad_chain (sinkpad, buffer) == GST_FLOW_OK);
diff --git a/tests/check/elements/selector.c b/tests/check/elements/selector.c
index 09c54b4..34179e5 100644
--- a/tests/check/elements/selector.c
+++ b/tests/check/elements/selector.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -56,8 +56,8 @@
   count++;
   g_object_set_data (G_OBJECT (pad), count_type, GINT_TO_POINTER (count));
 
-  /* drop everything */
-  return GST_PAD_PROBE_DROP;
+  /* drop every buffer */
+  return GST_IS_BUFFER (obj) ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_PASS;
 }
 
 /* Create and link output pad: selector:src%d ! output_pad */
@@ -217,6 +217,7 @@
   for (l = input_pads; l; l = l->next) {
     GstPad *pad = l->data;
 
+    gst_pad_push_event (pad, gst_event_new_stream_start ("test"));
     gst_pad_push_event (pad, gst_event_new_segment (&seg));
   }
 }
@@ -227,12 +228,10 @@
     GstElement * elem, GList * peer_pads, gint num_buffers)
 {
   GstBuffer *buf = NULL;
-  GstCaps *caps = NULL;
   GList *l = peer_pads;
   GstPad *selpad = NULL;
 
   /* setup dummy buffer */
-  caps = gst_caps_from_string ("application/x-unknown");
   buf = gst_buffer_new_and_alloc (1);
 
   while (l != NULL) {
@@ -250,7 +249,6 @@
 
   /* cleanup buffer */
   gst_buffer_unref (buf);
-  gst_caps_unref (caps);
 }
 
 /* Create output-selector with given number of src pads and switch
diff --git a/tests/check/elements/tee.c b/tests/check/elements/tee.c
index 46ff4d9..b212eaf 100644
--- a/tests/check/elements/tee.c
+++ b/tests/check/elements/tee.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -460,6 +460,7 @@
   GstPad *teesink, *teesrc1, *teesrc2;
   GstElement *tee;
   GstBuffer *buffer;
+  GstSegment segment;
   GstCaps *caps;
 
   caps = gst_caps_new_empty_simple ("test/test");
@@ -477,19 +478,20 @@
   mysink1 = gst_pad_new ("mysink1", GST_PAD_SINK);
   gst_pad_set_chain_function (mysink1, _fake_chain);
   gst_pad_set_active (mysink1, TRUE);
-  gst_pad_set_caps (mysink1, caps);
 
   GST_DEBUG ("Creating mysink2");
   mysink2 = gst_pad_new ("mysink2", GST_PAD_SINK);
   gst_pad_set_chain_function (mysink2, _fake_chain);
   gst_pad_set_active (mysink2, TRUE);
-  gst_pad_set_caps (mysink2, caps);
 
   GST_DEBUG ("Creating mysrc");
   mysrc = gst_pad_new ("mysrc", GST_PAD_SRC);
   gst_pad_set_active (mysrc, TRUE);
-  gst_pad_set_caps (mysrc, caps);
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (mysrc, gst_event_new_stream_start ("test"));
+  gst_pad_set_caps (mysrc, caps);
+  gst_pad_push_event (mysrc, gst_event_new_segment (&segment));
 
   fail_unless (gst_pad_link (mysrc, teesink) == GST_PAD_LINK_OK);
   fail_unless (gst_pad_link (teesrc1, mysink1) == GST_PAD_LINK_OK);
@@ -516,7 +518,6 @@
   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_FLUSHING);
 
@@ -528,9 +529,7 @@
   /* Test if everything still works in normal state */
   GST_DEBUG ("Reactivate both pads and try pushing");
   gst_pad_set_active (mysink1, TRUE);
-  gst_pad_set_caps (mysink1, caps);
   gst_pad_set_active (mysink2, TRUE);
-  gst_pad_set_caps (mysink2, caps);
   fail_unless (gst_pad_push (mysrc, gst_buffer_ref (buffer)) == GST_FLOW_OK);
 
   /* One unlinked pad must return OK, two unlinked pads must return NOT_LINKED */
diff --git a/tests/check/elements/valve.c b/tests/check/elements/valve.c
index 417dae1..4c6e9ca 100644
--- a/tests/check/elements/valve.c
+++ b/tests/check/elements/valve.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/generic/sinks.c b/tests/check/generic/sinks.c
index f70b52a..2d60611 100644
--- a/tests/check/generic/sinks.c
+++ b/tests/check/generic/sinks.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -919,6 +919,7 @@
   GstPad *sinkpad;
   GstFlowReturn res;
   GThread *thread;
+  GstSegment segment;
 
   pipeline = gst_pipeline_new ("pipeline");
 
@@ -932,6 +933,10 @@
   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   fail_unless (ret == GST_STATE_CHANGE_ASYNC, "no ASYNC state return");
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+  gst_pad_send_event (sinkpad, gst_event_new_segment (&segment));
+
   /* push buffer of 100 seconds, since it has a timestamp of 0, it should be
    * rendered immediately and the chain function should return immediately */
   buffer = gst_buffer_new_and_alloc (10);
@@ -1073,6 +1078,8 @@
   gst_bus_set_sync_handler (bus, (GstBusSyncHandler) async_done_func, sink,
       NULL);
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
   /* make newsegment, this sets the position to 10sec when the buffer prerolls */
   GST_DEBUG ("sending segment");
   gst_segment_init (&segment, GST_FORMAT_TIME);
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 3c2ad7f..251f433 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gst.c b/tests/check/gst/gst.c
index e907959..bbe953d 100644
--- a/tests/check/gst/gst.c
+++ b/tests/check/gst/gst.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstabi.c b/tests/check/gst/gstabi.c
index f9b9de3..2356cb1 100644
--- a/tests/check/gst/gstabi.c
+++ b/tests/check/gst/gstabi.c
@@ -15,15 +15,19 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <config.h>
 #include <gst/check/gstcheck.h>
 
 #ifdef HAVE_CPU_I386
+#ifndef G_OS_WIN32
 #include "struct_i386.h"
+#else
+#include "struct_i386w.h"
+#endif
 #define HAVE_ABI_SIZES TRUE
 #else
 #ifdef __powerpc64__
@@ -48,7 +52,7 @@
 #else
 #ifdef HAVE_CPU_ARM
 #include "struct_arm.h"
-#define HAVE_ABI_SIZES FALSE
+#define HAVE_ABI_SIZES TRUE
 #else
 /* in case someone wants to generate a new arch */
 #include "struct_i386.h"
diff --git a/tests/check/gst/gstatomicqueue.c b/tests/check/gst/gstatomicqueue.c
index 89801b8..4262c41 100644
--- a/tests/check/gst/gstatomicqueue.c
+++ b/tests/check/gst/gstatomicqueue.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
index 67aec7e..58c91ea 100644
--- a/tests/check/gst/gstbin.c
+++ b/tests/check/gst/gstbin.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c
index 6143506..e3da42c 100644
--- a/tests/check/gst/gstbuffer.c
+++ b/tests/check/gst/gstbuffer.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -791,6 +791,44 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_fill)
+{
+  GstBuffer *buf;
+  guint8 data[1024], data2[25];
+  gint i;
+
+  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));
+
+  for (i = 0; i < G_N_ELEMENTS (data); ++i)
+    data[i] = i & 0xff;
+
+  /* a NULL src pointer should be ok if the src length is 0 bytes */
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, NULL, 0), 0);
+  fail_unless_equals_int (gst_buffer_fill (buf, 20, NULL, 0), 0);
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data, 0), 0);
+
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data, 1), 1);
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data, 11), 11);
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data, 15), 15);
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data, 25), 25);
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data, 26), 25);
+  fail_unless_equals_int (gst_buffer_fill (buf, 1, data, 26), 24);
+  fail_unless_equals_int (gst_buffer_fill (buf, 10, data, 100), 15);
+  fail_unless_equals_int (gst_buffer_fill (buf, 11, data, 100), 14);
+  fail_unless_equals_int (gst_buffer_fill (buf, 25, data, 100), 0);
+
+  fail_unless_equals_int (gst_buffer_fill (buf, 0, data + 10, 25), 25);
+  fail_unless_equals_int (gst_buffer_extract (buf, 0, data2, 25), 25);
+  fail_unless (memcmp (data2, data + 10, 25) == 0);
+
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
 
 static Suite *
 gst_buffer_suite (void)
@@ -811,6 +849,7 @@
   tcase_add_test (tc_chain, test_map);
   tcase_add_test (tc_chain, test_map_range);
   tcase_add_test (tc_chain, test_find);
+  tcase_add_test (tc_chain, test_fill);
 
   return s;
 }
diff --git a/tests/check/gst/gstbufferlist.c b/tests/check/gst/gstbufferlist.c
index 55ca748..10c3165 100644
--- a/tests/check/gst/gstbufferlist.c
+++ b/tests/check/gst/gstbufferlist.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstbus.c b/tests/check/gst/gstbus.c
index 3a90651..6ceb71f 100644
--- a/tests/check/gst/gstbus.c
+++ b/tests/check/gst/gstbus.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstcaps.c b/tests/check/gst/gstcaps.c
index 1c0bd3b..ca4d59b 100644
--- a/tests/check/gst/gstcaps.c
+++ b/tests/check/gst/gstcaps.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -982,6 +982,106 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_features)
+{
+  GstCaps *c1, *c2, *c3;
+  GstStructure *s1, *s2;
+  GstCapsFeatures *f1, *f2;
+  gchar *str1;
+  static GstStaticCaps scaps =
+      GST_STATIC_CAPS
+      ("video/x-raw(memory:EGLImage), width=320, height=[ 240, 260 ]");
+
+  c1 = gst_caps_new_empty ();
+  fail_unless (c1 != NULL);
+  s1 = gst_structure_new ("video/x-raw", "width", G_TYPE_INT, 320, "height",
+      GST_TYPE_INT_RANGE, 240, 260, NULL);
+  fail_unless (s1 != NULL);
+  f1 = gst_caps_features_new ("memory:EGLImage", NULL);
+  fail_unless (f1 != NULL);
+
+  gst_caps_append_structure_full (c1, s1, f1);
+  s2 = gst_caps_get_structure (c1, 0);
+  fail_unless (s1 == s2);
+  f2 = gst_caps_get_features (c1, 0);
+  fail_unless (f1 == f2);
+
+  str1 = gst_caps_to_string (c1);
+  fail_unless (str1 != NULL);
+  c2 = gst_caps_from_string (str1);
+  fail_unless (c2 != NULL);
+  g_free (str1);
+
+  fail_unless (gst_caps_is_equal (c1, c2));
+  fail_unless (gst_caps_is_subset (c1, c2));
+  fail_unless (gst_caps_is_subset (c2, c1));
+  fail_unless (gst_caps_can_intersect (c1, c2));
+
+  gst_caps_unref (c2);
+
+  c2 = gst_caps_new_empty ();
+  fail_unless (c2 != NULL);
+  s2 = gst_structure_new ("video/x-raw", "width", G_TYPE_INT, 320, "height",
+      GST_TYPE_INT_RANGE, 240, 260, NULL);
+  fail_unless (s2 != NULL);
+  f2 = gst_caps_features_new ("memory:VASurface", "meta:VAMeta", NULL);
+  fail_unless (f2 != NULL);
+  gst_caps_append_structure_full (c2, s2, f2);
+
+  fail_if (gst_caps_is_equal (c1, c2));
+  fail_if (gst_caps_is_subset (c1, c2));
+  fail_if (gst_caps_is_subset (c2, c1));
+  fail_if (gst_caps_can_intersect (c1, c2));
+
+  str1 = gst_caps_to_string (c2);
+  fail_unless (str1 != NULL);
+  c3 = gst_caps_from_string (str1);
+  fail_unless (c3 != NULL);
+  g_free (str1);
+
+  fail_unless (gst_caps_is_equal (c2, c3));
+  fail_unless (gst_caps_is_subset (c2, c3));
+  fail_unless (gst_caps_is_subset (c3, c2));
+  fail_unless (gst_caps_can_intersect (c2, c3));
+
+  f1 = gst_caps_get_features (c3, 0);
+  fail_unless (f1 != NULL);
+  fail_if (f1 == f2);
+  gst_caps_features_contains (f1, "memory:VASurface");
+  gst_caps_features_remove (f1, "memory:VASurface");
+  fail_if (gst_caps_is_equal (c2, c3));
+  fail_if (gst_caps_is_subset (c2, c3));
+  fail_if (gst_caps_is_subset (c3, c2));
+  fail_if (gst_caps_can_intersect (c2, c3));
+
+  gst_caps_unref (c3);
+  gst_caps_unref (c2);
+
+  c2 = gst_static_caps_get (&scaps);
+  fail_unless (c2 != NULL);
+  fail_unless (gst_caps_is_equal (c1, c2));
+  fail_unless (gst_caps_is_subset (c1, c2));
+  fail_unless (gst_caps_is_subset (c2, c1));
+  fail_unless (gst_caps_can_intersect (c1, c2));
+  gst_caps_unref (c2);
+
+  c2 = gst_caps_from_string
+      ("video/x-raw(ANY), width=320, height=[ 240, 260 ]");
+  fail_unless (c2 != NULL);
+  fail_if (gst_caps_is_equal (c1, c2));
+  fail_unless (gst_caps_is_subset (c1, c2));
+  fail_if (gst_caps_is_subset (c2, c1));
+  fail_unless (gst_caps_can_intersect (c1, c2));
+
+  c3 = gst_caps_intersect (c1, c2);
+  fail_unless (gst_caps_is_equal (c3, c1));
+
+  gst_caps_unref (c3);
+  gst_caps_unref (c2);
+  gst_caps_unref (c1);
+}
+
+GST_END_TEST;
 
 static Suite *
 gst_caps_suite (void)
@@ -1009,6 +1109,7 @@
   tcase_add_test (tc_chain, test_intersect_duplication);
   tcase_add_test (tc_chain, test_normalize);
   tcase_add_test (tc_chain, test_broken);
+  tcase_add_test (tc_chain, test_features);
 
   return s;
 }
diff --git a/tests/check/gst/gstcapsfeatures.c b/tests/check/gst/gstcapsfeatures.c
new file mode 100644
index 0000000..5f76aa7
--- /dev/null
+++ b/tests/check/gst/gstcapsfeatures.c
@@ -0,0 +1,111 @@
+/* GStreamer
+ * Copyright (C) 2013 Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * gstcapsfeatures.c: Unit test for GstCapsFeatures
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/gstcapsfeatures.h>
+
+GST_START_TEST (test_basic_operations)
+{
+  GstCapsFeatures *a, *b;
+
+  a = gst_caps_features_new ("m:abc", "m:def", "m:ghi", NULL);
+  fail_unless (a != NULL);
+  b = gst_caps_features_copy (a);
+  fail_unless (b != NULL);
+  fail_unless (gst_caps_features_is_equal (a, b));
+  fail_if (gst_caps_features_is_equal (a,
+          GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY));
+  fail_unless_equals_int (gst_caps_features_get_size (a), 3);
+  fail_unless_equals_string (gst_caps_features_get_nth (a, 1), "m:def");
+  gst_caps_features_add (b, "m:jkl");
+  fail_if (gst_caps_features_is_equal (a, b));
+  fail_unless_equals_int (gst_caps_features_get_size (b), 4);
+  fail_unless_equals_string (gst_caps_features_get_nth (b, 3), "m:jkl");
+  gst_caps_features_add (b, "m:jkl");
+  fail_unless_equals_int (gst_caps_features_get_size (b), 4);
+
+  gst_caps_features_remove (b, "m:jkl");
+  fail_unless (gst_caps_features_is_equal (a, b));
+  gst_caps_features_remove (b, "m:abc");
+  gst_caps_features_add (b, "m:abc");
+  fail_unless (gst_caps_features_is_equal (a, b));
+  gst_caps_features_remove (b, "m:abc");
+  gst_caps_features_remove (b, "m:def");
+  gst_caps_features_remove (b, "m:ghi");
+  fail_unless (gst_caps_features_is_equal (b,
+          GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY));
+  gst_caps_features_add (b, GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY);
+
+  gst_caps_features_free (a);
+  gst_caps_features_free (b);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_from_to_string)
+{
+  GstCapsFeatures *a, *b;
+  gchar *str;
+
+  a = gst_caps_features_new ("m:abc", "m:def", "m:ghi", NULL);
+  fail_unless (a != NULL);
+  str = gst_caps_features_to_string (a);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "m:abc, m:def, m:ghi");
+  b = gst_caps_features_from_string (str);
+  fail_unless (b != NULL);
+  fail_unless (gst_caps_features_is_equal (a, b));
+  gst_caps_features_free (a);
+  gst_caps_features_free (b);
+  g_free (str);
+
+  a = gst_caps_features_new_any ();
+  fail_unless (a != NULL);
+  fail_unless (gst_caps_features_is_any (a));
+  str = gst_caps_features_to_string (a);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "ANY");
+  b = gst_caps_features_from_string (str);
+  fail_unless (b != NULL);
+  fail_unless (gst_caps_features_is_equal (a, b));
+  fail_unless (gst_caps_features_is_any (b));
+  gst_caps_features_free (a);
+  gst_caps_features_free (b);
+  g_free (str);
+}
+
+GST_END_TEST;
+
+static Suite *
+gst_capsfeatures_suite (void)
+{
+  Suite *s = suite_create ("GstCapsFeatures");
+  TCase *tc_chain = tcase_create ("operations");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_basic_operations);
+  tcase_add_test (tc_chain, test_from_to_string);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_capsfeatures);
diff --git a/tests/check/gst/gstchildproxy.c b/tests/check/gst/gstchildproxy.c
index b9bb665..35c9d37 100644
--- a/tests/check/gst/gstchildproxy.c
+++ b/tests/check/gst/gstchildproxy.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstclock.c b/tests/check/gst/gstclock.c
index fba8b02..a394cf8 100644
--- a/tests/check/gst/gstclock.c
+++ b/tests/check/gst/gstclock.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -22,24 +22,24 @@
 typedef struct
 {
   GstClock parent;
-} GstTestClock;
+} TestClock;
 
 typedef struct
 {
   GstClockClass parent_class;
-} GstTestClockClass;
+} TestClockClass;
 
-#define GST_TYPE_TEST_CLOCK                   (gst_test_clock_get_type ())
-#define GST_TEST_CLOCK(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_CLOCK, GstTestClock))
-#define GST_TEST_CLOCK_CAST(obj)              ((GstTestClock *)(obj))
-#define GST_IS_TEST_CLOCK(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_CLOCK))
-#define GST_TEST_CLOCK_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_CLOCK, GstTestClockClass))
-#define GST_IS_TEST_CLOCK_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_CLOCK))
-#define GST_TEST_CLOCK_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_CLOCK, GstTestClockClass))
+#define TYPE_TEST_CLOCK                   (test_clock_get_type ())
+#define TEST_CLOCK(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEST_CLOCK, TestClock))
+#define TEST_CLOCK_CAST(obj)              ((TestClock *)(obj))
+#define IS_TEST_CLOCK(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEST_CLOCK))
+#define TEST_CLOCK_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEST_CLOCK, TestClockClass))
+#define IS_TEST_CLOCK_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEST_CLOCK))
+#define TEST_CLOCK_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEST_CLOCK, TestClockClass))
 
 
-GType gst_test_clock_get_type (void);
-G_DEFINE_TYPE (GstTestClock, gst_test_clock, GST_TYPE_CLOCK);
+GType test_clock_get_type (void);
+G_DEFINE_TYPE (TestClock, test_clock, GST_TYPE_CLOCK);
 
 static GstClockReturn
 fake_wait_async (GstClock * clock, GstClockEntry * entry)
@@ -48,7 +48,7 @@
 }
 
 static void
-gst_test_clock_class_init (GstTestClockClass * klass)
+test_clock_class_init (TestClockClass * klass)
 {
   GstClockClass *clock_class;
 
@@ -58,7 +58,7 @@
 }
 
 static void
-gst_test_clock_init (GstTestClock * clock)
+test_clock_init (TestClock * clock)
 {
 }
 
@@ -75,8 +75,8 @@
   gboolean master_alive = TRUE;
 
   /* create master and slave */
-  master = g_object_new (GST_TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
-  slave = g_object_new (GST_TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
+  master = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
+  slave = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
   GST_OBJECT_FLAG_SET (slave, GST_CLOCK_FLAG_CAN_SET_MASTER);
 
   fail_unless_equals_int (GST_OBJECT_REFCOUNT (master), 1);
diff --git a/tests/check/gst/gstcontext.c b/tests/check/gst/gstcontext.c
new file mode 100644
index 0000000..702cd03
--- /dev/null
+++ b/tests/check/gst/gstcontext.c
@@ -0,0 +1,355 @@
+/* GStreamer
+ * Copyright (C) 2013 Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * gstcontext.c: Unit test for GstContext
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+
+GST_START_TEST (test_basic)
+{
+  GstContext *c1, *c2;
+  GstStructure *s1;
+  const GstStructure *s2;
+
+  c1 = gst_context_new ();
+  fail_unless (c1 != NULL);
+  fail_unless (GST_IS_CONTEXT (c1));
+  s1 = gst_context_writable_structure (c1);
+  fail_unless (s1 != NULL);
+  gst_structure_set (s1, "foobar", G_TYPE_INT, 1, NULL);
+
+  c2 = gst_context_copy (c1);
+  fail_unless (c2 != NULL);
+  fail_unless (GST_IS_CONTEXT (c2));
+  s2 = gst_context_get_structure (c2);
+  fail_unless (s2 != NULL);
+  fail_unless (gst_structure_is_equal (s1, s2));
+
+  gst_context_unref (c1);
+  gst_context_unref (c2);
+}
+
+GST_END_TEST;
+
+typedef struct
+{
+  GstElement parent;
+  gboolean set_before_ready;
+  gboolean set_from_need_context;
+  gboolean create_self;
+} GstContextElement;
+
+typedef struct
+{
+  GstElementClass parent_class;
+} GstContextElementClass;
+
+GType gst_context_element_get_type (void);
+
+G_DEFINE_TYPE (GstContextElement, gst_context_element, GST_TYPE_ELEMENT);
+
+static void
+gst_context_element_set_context (GstElement * element, GstContext * context)
+{
+  GST_ELEMENT_CLASS (gst_context_element_parent_class)->set_context (element,
+      context);
+}
+
+static GstStateChangeReturn
+gst_context_element_change_state (GstElement * element,
+    GstStateChange transition)
+{
+  GstContextElement *celement = (GstContextElement *) element;
+
+  if (transition == GST_STATE_CHANGE_NULL_TO_READY) {
+    GstContext *context;
+    const GstStructure *s;
+    GstMessage *msg;
+    gboolean have_foobar = FALSE;
+
+    context = gst_element_get_context (element);
+    if (context) {
+      s = gst_context_get_structure (context);
+      if (gst_structure_has_field (s, "foobar"))
+        have_foobar = TRUE;
+      gst_context_unref (context);
+    }
+
+    if (celement->set_before_ready && !have_foobar)
+      return GST_STATE_CHANGE_FAILURE;
+    else if (celement->set_before_ready)
+      return
+          GST_ELEMENT_CLASS (gst_context_element_parent_class)->change_state
+          (element, transition);
+
+    if (celement->set_from_need_context && have_foobar)
+      return GST_STATE_CHANGE_FAILURE;
+
+    if (!have_foobar) {
+      /* Here we would first query downstream for a context but we have no pads */
+      msg = gst_message_new_need_context (GST_OBJECT (element));
+      gst_message_add_context_type (msg, "foobar");
+      gst_element_post_message (element, msg);
+
+      context = gst_element_get_context (element);
+      if (context) {
+        s = gst_context_get_structure (context);
+        if (gst_structure_has_field (s, "foobar"))
+          have_foobar = TRUE;
+        gst_context_unref (context);
+      }
+    }
+
+    if (celement->set_from_need_context && !have_foobar)
+      return GST_STATE_CHANGE_FAILURE;
+    else if (celement->set_from_need_context)
+      return
+          GST_ELEMENT_CLASS (gst_context_element_parent_class)->change_state
+          (element, transition);
+
+    if (celement->create_self && have_foobar)
+      return GST_STATE_CHANGE_FAILURE;
+
+    if (!have_foobar) {
+      GstStructure *s2;
+      context = gst_element_get_context (element);
+      if (context)
+        context = gst_context_make_writable (context);
+      else
+        context = gst_context_new ();
+      s2 = gst_context_writable_structure (context);
+      gst_structure_set (s2, "foobar", G_TYPE_INT, 123, NULL);
+      gst_element_set_context (element, context);
+      msg =
+          gst_message_new_have_context (GST_OBJECT (element),
+          gst_context_ref (context));
+      gst_element_post_message (element, msg);
+      gst_context_unref (context);
+    }
+    return
+        GST_ELEMENT_CLASS (gst_context_element_parent_class)->change_state
+        (element, transition);
+  }
+
+  return
+      GST_ELEMENT_CLASS (gst_context_element_parent_class)->change_state
+      (element, transition);
+}
+
+static void
+gst_context_element_class_init (GstContextElementClass * klass)
+{
+  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+
+  gstelement_class->set_context = gst_context_element_set_context;
+  gstelement_class->change_state = gst_context_element_change_state;
+}
+
+static void
+gst_context_element_init (GstContextElement * self)
+{
+
+}
+
+GST_START_TEST (test_element_set_before_ready)
+{
+  GstBus *bus;
+  GstElement *element;
+  GstContext *context, *context2;
+  GstStructure *s;
+  const GstStructure *s2;
+  GstMessage *msg;
+
+  element = g_object_new (gst_context_element_get_type (), NULL);
+  bus = gst_bus_new ();
+  gst_element_set_bus (element, bus);
+
+  ((GstContextElement *) element)->set_before_ready = TRUE;
+
+  fail_if (gst_element_set_state (element,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS);
+  fail_if (gst_bus_pop (bus) != NULL);
+
+  context = gst_context_new ();
+  s = gst_context_writable_structure (context);
+  gst_structure_set (s, "foobar", G_TYPE_INT, 123, NULL);
+  gst_element_set_context (element, context);
+  fail_unless (gst_element_set_state (element,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS);
+  fail_unless ((msg =
+          gst_bus_pop_filtered (bus, GST_MESSAGE_STATE_CHANGED)) != NULL);
+  gst_message_unref (msg);
+  fail_if (gst_bus_pop (bus) != NULL);
+
+  context2 = gst_element_get_context (element);
+  fail_unless (GST_IS_CONTEXT (context2));
+  s2 = gst_context_get_structure (context2);
+  fail_unless (gst_structure_is_equal (s, s2));
+
+  gst_context_unref (context);
+  gst_context_unref (context2);
+
+  gst_element_set_bus (element, NULL);
+  fail_unless (gst_element_set_state (element,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (bus);
+  gst_object_unref (element);
+}
+
+GST_END_TEST;
+
+static GstBusSyncReply
+sync_handler (GstBus * bus, GstMessage * message, gpointer user_data)
+{
+  if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_NEED_CONTEXT) {
+    guint n;
+    const gchar *type;
+    GstElement *element = GST_ELEMENT (GST_MESSAGE_SRC (message));
+    GstContext *context;
+    GstStructure *s;
+
+    n = gst_message_get_n_context_types (message);
+    fail_unless (n == 1);
+    fail_unless (gst_message_parse_nth_context_type (message, 0, &type));
+    fail_unless_equals_string (type, "foobar");
+    context = gst_element_get_context (element);
+    if (context)
+      context = gst_context_make_writable (context);
+    else
+      context = gst_context_new ();
+    s = gst_context_writable_structure (context);
+    gst_structure_set (s, "foobar", G_TYPE_INT, 123, NULL);
+    gst_element_set_context (element, context);
+    gst_context_unref (context);
+  }
+
+  return GST_BUS_PASS;
+}
+
+GST_START_TEST (test_element_set_from_need_context)
+{
+  GstBus *bus;
+  GstElement *element;
+  GstContext *context;
+  const GstStructure *s;
+  GstMessage *msg;
+
+  element = g_object_new (gst_context_element_get_type (), NULL);
+  bus = gst_bus_new ();
+  gst_bus_set_sync_handler (bus, sync_handler, NULL, NULL);
+  gst_element_set_bus (element, bus);
+
+  ((GstContextElement *) element)->set_from_need_context = TRUE;
+
+  fail_unless (gst_element_set_state (element,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS);
+  fail_unless ((msg =
+          gst_bus_pop_filtered (bus, GST_MESSAGE_NEED_CONTEXT)) != NULL);
+  gst_message_unref (msg);
+  fail_unless ((msg =
+          gst_bus_pop_filtered (bus, GST_MESSAGE_STATE_CHANGED)) != NULL);
+  gst_message_unref (msg);
+  fail_if (gst_bus_pop (bus) != NULL);
+
+  context = gst_element_get_context (element);
+  fail_unless (GST_IS_CONTEXT (context));
+  s = gst_context_get_structure (context);
+  fail_unless (gst_structure_has_field (s, "foobar"));
+
+  gst_context_unref (context);
+
+  gst_element_set_bus (element, NULL);
+  fail_unless (gst_element_set_state (element,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (bus);
+  gst_object_unref (element);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_element_create_self)
+{
+  GstBus *bus;
+  GstElement *element;
+  GstContext *context;
+  const GstStructure *s;
+  GstMessage *msg;
+
+  element = g_object_new (gst_context_element_get_type (), NULL);
+  bus = gst_bus_new ();
+  gst_element_set_bus (element, bus);
+
+  ((GstContextElement *) element)->create_self = TRUE;
+
+  fail_unless (gst_element_set_state (element,
+          GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS);
+  fail_unless ((msg =
+          gst_bus_pop_filtered (bus, GST_MESSAGE_NEED_CONTEXT)) != NULL);
+  gst_message_unref (msg);
+  fail_unless ((msg =
+          gst_bus_pop_filtered (bus, GST_MESSAGE_HAVE_CONTEXT)) != NULL);
+  gst_message_parse_have_context (msg, &context);
+  fail_unless (GST_IS_CONTEXT (context));
+  s = gst_context_get_structure (context);
+  fail_unless (gst_structure_has_field (s, "foobar"));
+  gst_context_unref (context);
+  gst_message_unref (msg);
+  fail_unless ((msg =
+          gst_bus_pop_filtered (bus, GST_MESSAGE_STATE_CHANGED)) != NULL);
+  gst_message_unref (msg);
+  fail_if (gst_bus_pop (bus) != NULL);
+
+  context = gst_element_get_context (element);
+  fail_unless (GST_IS_CONTEXT (context));
+  s = gst_context_get_structure (context);
+  fail_unless (gst_structure_has_field (s, "foobar"));
+
+  gst_context_unref (context);
+
+  gst_element_set_bus (element, NULL);
+  fail_unless (gst_element_set_state (element,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (bus);
+  gst_object_unref (element);
+}
+
+GST_END_TEST;
+
+static Suite *
+gst_context_suite (void)
+{
+  Suite *s = suite_create ("GstContext");
+  TCase *tc_chain = tcase_create ("context tests");
+
+  tcase_set_timeout (tc_chain, 0);
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_basic);
+  tcase_add_test (tc_chain, test_element_set_before_ready);
+  tcase_add_test (tc_chain, test_element_set_from_need_context);
+  tcase_add_test (tc_chain, test_element_create_self);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_context);
diff --git a/tests/check/gst/gstcontroller.c b/tests/check/gst/gstcontroller.c
index 205b89b..531e727 100644
--- a/tests/check/gst/gstcontroller.c
+++ b/tests/check/gst/gstcontroller.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -127,6 +127,7 @@
 gst_test_obj_class_init (GstTestObjClass * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
   gobject_class->set_property = gst_test_obj_set_property;
   gobject_class->get_property = gst_test_obj_get_property;
@@ -171,12 +172,6 @@
           "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_metadata (element_class,
       "test object for unit tests",
@@ -192,7 +187,7 @@
     GType type;
     static const GTypeInfo info = {
       (guint16) sizeof (GstTestObjClass),
-      (GBaseInitFunc) gst_test_obj_base_init,   // base_init
+      NULL,                     // base_init
       NULL,                     // base_finalize
       (GClassInitFunc) gst_test_obj_class_init, // class_init
       NULL,                     // class_finalize
@@ -301,6 +296,11 @@
 
 /* test control binding */
 
+enum
+{
+  PROP_CS = 1,
+};
+
 #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))
@@ -338,12 +338,36 @@
   return (GstControlBinding *) self;
 }
 
-static GstControlSource *
-gst_test_control_binding_get_control_source (GstTestControlBinding * self)
+static void
+gst_test_control_binding_get_property (GObject * object,
+    guint property_id, GValue * value, GParamSpec * pspec)
 {
-  g_return_val_if_fail (GST_IS_TEST_CONTROL_BINDING (self), NULL);
+  GstTestControlBinding *self = GST_TEST_CONTROL_BINDING (object);
 
-  return self->cs ? gst_object_ref (self->cs) : NULL;
+  switch (property_id) {
+    case PROP_CS:
+      g_value_set_object (value, self->cs);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_test_control_binding_set_property (GObject * object,
+    guint property_id, const GValue * value, GParamSpec * pspec)
+{
+  GstTestControlBinding *self = GST_TEST_CONTROL_BINDING (object);
+
+  switch (property_id) {
+    case PROP_CS:
+      self->cs = g_value_dup_object (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
 }
 
 static void
@@ -363,7 +387,14 @@
 
   gst_test_control_binding_parent_class = g_type_class_peek_parent (klass);
 
+  gobject_class->set_property = gst_test_control_binding_set_property;
+  gobject_class->get_property = gst_test_control_binding_get_property;
   gobject_class->finalize = gst_test_control_binding_finalize;
+
+  g_object_class_install_property (gobject_class, PROP_CS,
+      g_param_spec_object ("control-source", "ControlSource",
+          "The control source",
+          GST_TYPE_CONTROL_SOURCE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 }
 
 static GType
@@ -629,9 +660,7 @@
   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));
+  g_object_get (test_cb, "control-source", &test_cs, NULL);
   fail_unless (test_cs != NULL, NULL);
   fail_unless (test_cs == cs);
   fail_unless_equals_int (G_OBJECT (cs)->ref_count, 3);
diff --git a/tests/check/gst/gstdatetime.c b/tests/check/gst/gstdatetime.c
index c770a2c..eb637c4 100644
--- a/tests/check/gst/gstdatetime.c
+++ b/tests/check/gst/gstdatetime.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gstelement.c b/tests/check/gst/gstelement.c
index 5bb45da..8732611 100644
--- a/tests/check/gst/gstelement.c
+++ b/tests/check/gst/gstelement.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstelementfactory.c b/tests/check/gst/gstelementfactory.c
index 52a668f..366a1c2 100644
--- a/tests/check/gst/gstelementfactory.c
+++ b/tests/check/gst/gstelementfactory.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "../../gst/gst_private.h"
 
diff --git a/tests/check/gst/gstevent.c b/tests/check/gst/gstevent.c
index acca8ac..7aae693 100644
--- a/tests/check/gst/gstevent.c
+++ b/tests/check/gst/gstevent.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -198,6 +198,27 @@
     gst_event_unref (event);
   }
 
+  /* STREAM_START */
+  {
+    GstStreamFlags flags = ~GST_STREAM_FLAG_NONE;
+
+    event = gst_event_new_stream_start ("7f4b2f0/audio_02");
+    fail_if (event == NULL);
+    fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
+    fail_if (GST_EVENT_IS_UPSTREAM (event));
+    fail_unless (GST_EVENT_IS_DOWNSTREAM (event));
+    fail_unless (GST_EVENT_IS_SERIALIZED (event));
+    gst_event_parse_stream_flags (event, &flags);
+    fail_unless_equals_int (flags, GST_STREAM_FLAG_NONE);
+    gst_event_set_stream_flags (event, GST_STREAM_FLAG_SPARSE);
+    gst_event_parse_stream_flags (event, &flags);
+    fail_unless_equals_int (flags, GST_STREAM_FLAG_SPARSE);
+    gst_event_ref (event);
+    ASSERT_CRITICAL (gst_event_set_stream_flags (event, GST_STREAM_FLAG_NONE));
+    gst_event_unref (event);
+    gst_event_unref (event);
+  }
+
   /* NAVIGATION */
   {
     structure = gst_structure_new ("application/x-gst-navigation", "event",
diff --git a/tests/check/gst/gstghostpad.c b/tests/check/gst/gstghostpad.c
index ba037aa..c274e6d 100644
--- a/tests/check/gst/gstghostpad.c
+++ b/tests/check/gst/gstghostpad.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -1130,6 +1130,7 @@
 {
   GstPad *sinkpad;
   GstPad *srcpad;
+  GstSegment segment;
 
   bin = gst_bin_new (NULL);
   gst_element_set_state (bin, GST_STATE_PLAYING);
@@ -1147,6 +1148,12 @@
   gst_pad_set_active (srcpad, TRUE);
   gst_pad_link (srcpad, ghostsink);
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_segment (&segment)) == TRUE);
+
   gst_pad_add_probe (ghostsrc, GST_PAD_PROBE_TYPE_BUFFER,
       remove_ghostpad_probe_cb, NULL, NULL);
 
diff --git a/tests/check/gst/gstinfo.c b/tests/check/gst/gstinfo.c
index bc786ee..29f272c 100644
--- a/tests/check/gst/gstinfo.c
+++ b/tests/check/gst/gstinfo.c
@@ -16,14 +16,19 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
 
+#include <string.h>
+
 #ifndef GST_DISABLE_GST_DEBUG
 
+static GList *messages;         /* NULL */
+static gboolean save_messages;  /* FALSE */
+
 static void
 printf_extension_log_func (GstDebugCategory * category,
     GstDebugLevel level, const gchar * file, const gchar * function,
@@ -34,6 +39,9 @@
   dbg_msg = gst_debug_message_get (message);
   fail_unless (dbg_msg != NULL);
 
+  if (save_messages)
+    messages = g_list_append (messages, g_strdup (dbg_msg));
+
   /* g_print ("%s\n", dbg_msg); */
 
   /* quick hack to still get stuff to show if GST_DEBUG is set */
@@ -241,6 +249,71 @@
 }
 
 GST_END_TEST;
+
+/* need this indirection so the compiler doesn't check the printf format
+ * like it would if we used GST_INFO directly (it would complain) */
+static void
+call_GST_INFO (const gchar * format, ...)
+{
+  va_list var_args;
+
+  va_start (var_args, format);
+  gst_debug_log_valist (GST_CAT_DEFAULT, GST_LEVEL_INFO, __FILE__, GST_FUNCTION,
+      __LINE__, NULL, format, var_args);
+  va_end (var_args);
+}
+
+GST_START_TEST (info_old_printf_extensions)
+{
+  GstSegment segment;
+  GstCaps *caps;
+  gchar *str;
+
+  /* set up our own log function to make sure the code in gstinfo is actually
+   * executed without GST_DEBUG being set or it being output to stdout */
+  gst_debug_remove_log_function (gst_debug_log_default);
+  gst_debug_add_log_function (printf_extension_log_func, NULL, NULL);
+
+  gst_debug_set_default_threshold (GST_LEVEL_LOG);
+
+  save_messages = TRUE;
+
+  fail_unless (messages == NULL);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  caps = gst_caps_new_simple ("foo/bar", "width", G_TYPE_INT, 4096,
+      "framerate", GST_TYPE_FRACTION, 50, 1, "format", G_TYPE_STRING, "ARGB",
+      NULL);
+  call_GST_INFO ("Segment %Q, caps are %P", &segment, caps);
+  gst_caps_unref (caps);
+
+  fail_unless_equals_int (g_list_length (messages), 1);
+  str = (gchar *) messages->data;
+  fail_unless (str != NULL);
+
+  GST_INFO ("str = '%s'", str);
+
+  fail_unless (strstr (str, "time") != NULL);
+  fail_unless (strstr (str, "start=0:00:00.000000000") != NULL);
+  fail_unless (strstr (str, "stop=99:99:99.999999999") != NULL);
+  fail_unless (strstr (str, "applied_rate=1.000000") != NULL);
+
+  fail_unless (strstr (str, " caps are ") != NULL);
+  fail_unless (strstr (str, "foo/bar") != NULL);
+  fail_unless (strstr (str, "width=(int)4096") != NULL);
+  fail_unless (strstr (str, "framerate=(fraction)50/1") != NULL);
+  fail_unless (strstr (str, "ARGB") != NULL);
+
+  /* clean up */
+  gst_debug_set_default_threshold (GST_LEVEL_NONE);
+  gst_debug_add_log_function (gst_debug_log_default, NULL, NULL);
+  gst_debug_remove_log_function (printf_extension_log_func);
+  save_messages = FALSE;
+  g_list_foreach (messages, (GFunc) g_free, NULL);
+  messages = NULL;
+}
+
+GST_END_TEST;
 #endif
 
 static Suite *
@@ -258,6 +331,7 @@
   tcase_add_test (tc_chain, info_log_handler);
   tcase_add_test (tc_chain, info_dump_mem);
   tcase_add_test (tc_chain, info_fixme);
+  tcase_add_test (tc_chain, info_old_printf_extensions);
 #endif
 
   return s;
diff --git a/tests/check/gst/gstiterator.c b/tests/check/gst/gstiterator.c
index d7b589e..7b90771 100644
--- a/tests/check/gst/gstiterator.c
+++ b/tests/check/gst/gstiterator.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/check/gst/gstmemory.c b/tests/check/gst/gstmemory.c
index 9d209e9..486f6fe 100644
--- a/tests/check/gst/gstmemory.c
+++ b/tests/check/gst/gstmemory.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gstmessage.c b/tests/check/gst/gstmessage.c
index 682faf6..94d5cdd 100644
--- a/tests/check/gst/gstmessage.c
+++ b/tests/check/gst/gstmessage.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstmeta.c b/tests/check/gst/gstmeta.c
index 0f2355b..0cb034f 100644
--- a/tests/check/gst/gstmeta.c
+++ b/tests/check/gst/gstmeta.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gstminiobject.c b/tests/check/gst/gstminiobject.c
index 237f7e4..6351b70 100644
--- a/tests/check/gst/gstminiobject.c
+++ b/tests/check/gst/gstminiobject.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstobject.c b/tests/check/gst/gstobject.c
index ce2ed3e..96f6bcf 100644
--- a/tests/check/gst/gstobject.c
+++ b/tests/check/gst/gstobject.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gstpad.c b/tests/check/gst/gstpad.c
index 2b537e1..406d1ce 100644
--- a/tests/check/gst/gstpad.c
+++ b/tests/check/gst/gstpad.c
@@ -15,12 +15,14 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
 
+static GstSegment dummy_segment;
+
 GST_START_TEST (test_link)
 {
   GstPad *src, *sink;
@@ -226,7 +228,14 @@
 {
   GstCaps *caps;
 
-  fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_CAPS);
+  fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_CAPS
+      || GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START
+      || GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT);
+
+  if (GST_EVENT_TYPE (event) != GST_EVENT_CAPS) {
+    gst_event_unref (event);
+    return TRUE;
+  }
 
   /* Ensure we get here just once: */
   fail_unless (event_caps == NULL);
@@ -268,14 +277,21 @@
   gst_object_unref (src_template);
   gst_object_unref (sink_template);
 
+  gst_pad_set_active (src, TRUE);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+
   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);
 
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   /* 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);
@@ -286,9 +302,10 @@
   fail_unless (event_caps == caps);
   fail_unless_equals_int (g_list_length (buffers), 1);
 
+  gst_check_drop_buffers ();
+
   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);
@@ -330,17 +347,24 @@
   gst_object_unref (src_template);
   gst_object_unref (sink_template);
 
+  gst_pad_set_active (src, TRUE);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+
   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);
 
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   /* 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);
@@ -355,6 +379,8 @@
   /* We shouldn't have received any buffers since caps are incompatible */
   fail_unless_equals_int (g_list_length (buffers), 0);
 
+  gst_check_drop_buffers ();
+
   gst_caps_replace (&event_caps, NULL);
 
   ASSERT_OBJECT_REFCOUNT (src, "src", 1);
@@ -397,12 +423,18 @@
   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,
+          gst_event_new_stream_start ("test")) == 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);
 
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   /* Activating will not forward the sticky event yet... */
   gst_pad_set_active (sink, TRUE);
   fail_unless (event_caps == NULL);
@@ -412,6 +444,8 @@
   fail_unless (event_caps == caps);
   fail_unless_equals_int (g_list_length (buffers), 1);
 
+  gst_check_drop_buffers ();
+
   gst_caps_replace (&caps, NULL);
   gst_caps_replace (&event_caps, NULL);
 
@@ -493,9 +527,13 @@
   gst_buffer_unref (buffer);
 
   gst_pad_set_active (src, TRUE);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
   GST_DEBUG ("push caps event inactive");
   gst_pad_set_caps (src, caps);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
 
   /* pushing on an unlinked pad will drop the buffer */
   GST_DEBUG ("push buffer unlinked");
@@ -563,15 +601,22 @@
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
 
   gst_pad_set_active (src, TRUE);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+
   gst_pad_set_caps (src, caps);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   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);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   plr = gst_pad_link (src, sink);
   fail_unless (GST_PAD_LINK_SUCCESSFUL (plr));
-  ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   buffer = gst_buffer_new ();
 
@@ -654,16 +699,19 @@
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
 
   gst_pad_set_active (src, TRUE);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
   gst_pad_set_caps (src, caps);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
   /* 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);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   plr = gst_pad_link (src, sink);
   fail_unless (GST_PAD_LINK_SUCCESSFUL (plr));
-  ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   /* not activating the pads here, which keeps them flushing */
   gst_pad_set_active (src, FALSE);
@@ -680,13 +728,18 @@
   gst_pad_set_active (src, TRUE);
   gst_pad_set_active (sink, FALSE);
 
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+  gst_pad_set_caps (src, caps);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
   /* 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);
+  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);
@@ -705,7 +758,7 @@
   gst_pad_remove_probe (src, id);
 
   /* cleanup */
-  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
   ASSERT_OBJECT_REFCOUNT (src, "src", 1);
   gst_pad_link (src, sink);
   gst_object_unref (src);
@@ -764,9 +817,16 @@
   caps = gst_caps_from_string ("foo/bar");
 
   gst_pad_set_active (src, TRUE);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+
   gst_pad_set_caps (src, caps);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   gst_pad_set_active (sink, TRUE);
-  gst_pad_set_caps (sink, caps);
 
   plr = gst_pad_link (src, sink);
   fail_unless (GST_PAD_LINK_SUCCESSFUL (plr));
@@ -999,6 +1059,12 @@
   fail_unless (pad != NULL);
 
   gst_pad_set_active (pad, TRUE);
+
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK, block_async_cb, &data,
       NULL);
 
@@ -1035,6 +1101,12 @@
   fail_unless (pad != NULL);
 
   gst_pad_set_active (pad, TRUE);
+
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   id = gst_pad_add_probe (pad, type, block_async_cb_return_ok, NULL, NULL);
 
 
@@ -1120,6 +1192,85 @@
 
 GST_END_TEST;
 
+static gboolean src_flush_start_probe_called = FALSE;
+static gboolean src_flush_stop_probe_called = FALSE;
+static gboolean sink_flush_start_probe_called = FALSE;
+static gboolean sink_flush_stop_probe_called = FALSE;
+
+static GstPadProbeReturn
+flush_probe_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  GstEvent *event;
+
+  if (!(GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_FLUSH))
+    goto out;
+
+  event = gst_pad_probe_info_get_event (info);
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_START:
+      if (GST_PAD_DIRECTION (pad) == GST_PAD_SRC)
+        src_flush_start_probe_called = TRUE;
+      else
+        sink_flush_start_probe_called = TRUE;
+      break;
+    case GST_EVENT_FLUSH_STOP:
+      if (GST_PAD_DIRECTION (pad) == GST_PAD_SRC)
+        src_flush_stop_probe_called = TRUE;
+      else
+        sink_flush_stop_probe_called = TRUE;
+      break;
+    default:
+      break;
+  }
+
+out:
+  return GST_PAD_PROBE_OK;
+}
+
+GST_START_TEST (test_pad_probe_flush_events)
+{
+  GstPad *src, *sink;
+
+  src = gst_pad_new ("src", GST_PAD_SRC);
+  sink = gst_pad_new ("sink", GST_PAD_SINK);
+  gst_pad_set_chain_function (sink, gst_check_chain_func);
+  gst_pad_set_active (src, TRUE);
+  gst_pad_set_active (sink, TRUE);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
+  fail_unless (gst_pad_link (src, sink) == GST_PAD_LINK_OK);
+
+  gst_pad_add_probe (src,
+      GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM |
+      GST_PAD_PROBE_TYPE_EVENT_FLUSH, flush_probe_cb, NULL, NULL);
+  gst_pad_add_probe (sink,
+      GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM |
+      GST_PAD_PROBE_TYPE_EVENT_FLUSH, flush_probe_cb, NULL, NULL);
+
+  gst_pad_push_event (src, gst_event_new_flush_start ());
+  gst_pad_push_event (src, gst_event_new_flush_stop (TRUE));
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
+  /* push a buffer so the events are propagated downstream */
+  gst_pad_push (src, gst_buffer_new ());
+
+  fail_unless (src_flush_start_probe_called);
+  fail_unless (src_flush_stop_probe_called);
+  fail_unless (sink_flush_start_probe_called);
+  fail_unless (sink_flush_stop_probe_called);
+
+  gst_object_unref (src);
+  gst_object_unref (sink);
+}
+
+GST_END_TEST;
+
 static gboolean got_notify;
 
 static void
@@ -1280,6 +1431,11 @@
   fail_unless (pad != NULL);
   gst_pad_set_active (pad, TRUE);
 
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK, block_async_full_cb,
       &state, block_async_full_destroy);
   fail_unless (state == 0);
@@ -1309,6 +1465,11 @@
   fail_unless (pad != NULL);
   gst_pad_set_active (pad, TRUE);
 
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   (void) gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK, block_async_full_cb,
       &state, block_async_full_destroy);
 
@@ -1419,6 +1580,11 @@
   fail_unless (pad != NULL);
   gst_pad_set_active (pad, TRUE);
 
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (pad,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
   GST_DEBUG ("adding probe");
   id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK,
       block_async_first_no_flush, bool_user_data, NULL);
@@ -1474,19 +1640,36 @@
   return TRUE;
 }
 
+static GstFlowReturn
+test_sticky_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  gst_buffer_unref (buffer);
+  return GST_FLOW_OK;
+}
+
 GST_START_TEST (test_sticky_events)
 {
   GstPad *srcpad, *sinkpad;
   GstCaps *caps;
   GstSegment seg;
+  gchar *id;
 
   /* make unlinked srcpad */
   srcpad = gst_pad_new ("src", GST_PAD_SRC);
   fail_unless (srcpad != NULL);
   gst_pad_set_active (srcpad, TRUE);
 
+  /* test stream-start */
+  fail_unless (gst_pad_get_stream_id (srcpad) == NULL);
+
   /* push an event, it should be sticky on the srcpad */
-  gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start ("test")) == TRUE);
+
+  /* let's see if it stuck */
+  id = gst_pad_get_stream_id (srcpad);
+  fail_unless_equals_string (id, "test");
+  g_free (id);
 
   /* make a caps event */
   caps = gst_caps_new_empty_simple ("foo/bar");
@@ -1502,6 +1685,7 @@
   fail_unless (sinkpad != NULL);
   sticky_count = 0;
   gst_pad_set_event_function (sinkpad, test_sticky_events_handler);
+  gst_pad_set_chain_function (sinkpad, test_sticky_chain);
   fail_unless (sticky_count == 0);
   gst_pad_set_active (sinkpad, TRUE);
 
@@ -1516,8 +1700,13 @@
   gst_pad_push_event (srcpad, gst_event_new_caps (caps));
   gst_caps_unref (caps);
 
-  /* should have triggered 2 events */
-  fail_unless (sticky_count == 3);
+  /* should have triggered 2 events, the segment event is still pending */
+  fail_unless_equals_int (sticky_count, 2);
+
+  fail_unless (gst_pad_push (srcpad, gst_buffer_new ()) == GST_FLOW_OK);
+
+  /* should have triggered 3 events */
+  fail_unless_equals_int (sticky_count, 3);
 
   gst_object_unref (srcpad);
   gst_object_unref (sinkpad);
@@ -1534,6 +1723,8 @@
   /* turn off timeout */
   tcase_set_timeout (tc_chain, 60);
 
+  gst_segment_init (&dummy_segment, GST_FORMAT_BYTES);
+
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_link);
   tcase_add_test (tc_chain, test_refcount);
@@ -1555,6 +1746,7 @@
   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_pad_probe_remove);
+  tcase_add_test (tc_chain, test_pad_probe_flush_events);
   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
diff --git a/tests/check/gst/gstparamspecs.c b/tests/check/gst/gstparamspecs.c
index 5db7408..ad2e99b 100644
--- a/tests/check/gst/gstparamspecs.c
+++ b/tests/check/gst/gstparamspecs.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstpipeline.c b/tests/check/gst/gstpipeline.c
index 038f340..e1b4670 100644
--- a/tests/check/gst/gstpipeline.c
+++ b/tests/check/gst/gstpipeline.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/tests/check/gst/gstplugin.c b/tests/check/gst/gstplugin.c
index c4c3395..7e69629 100644
--- a/tests/check/gst/gstplugin.c
+++ b/tests/check/gst/gstplugin.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "config.h"
diff --git a/tests/check/gst/gstpoll.c b/tests/check/gst/gstpoll.c
index d25c421..3357bf5 100644
--- a/tests/check/gst/gstpoll.c
+++ b/tests/check/gst/gstpoll.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -327,12 +327,22 @@
   tcase_set_timeout (tc_chain, 60);
 
   suite_add_tcase (s, tc_chain);
+
+#ifndef G_OS_WIN32
   tcase_add_test (tc_chain, test_poll_basic);
   tcase_add_test (tc_chain, test_poll_wait);
   tcase_add_test (tc_chain, test_poll_wait_stop);
   tcase_add_test (tc_chain, test_poll_wait_restart);
   tcase_add_test (tc_chain, test_poll_wait_flush);
   tcase_add_test (tc_chain, test_poll_controllable);
+#else
+  tcase_skip_broken_test (tc_chain, test_poll_basic);
+  tcase_skip_broken_test (tc_chain, test_poll_wait);
+  tcase_skip_broken_test (tc_chain, test_poll_wait_stop);
+  tcase_skip_broken_test (tc_chain, test_poll_wait_restart);
+  tcase_skip_broken_test (tc_chain, test_poll_wait_flush);
+  tcase_skip_broken_test (tc_chain, test_poll_controllable);
+#endif
 
   return s;
 }
diff --git a/tests/check/gst/gstpreset.c b/tests/check/gst/gstpreset.c
index e731f75..82fca39 100644
--- a/tests/check/gst/gstpreset.c
+++ b/tests/check/gst/gstpreset.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gstquery.c b/tests/check/gst/gstquery.c
index b37eec2..efd9898 100644
--- a/tests/check/gst/gstquery.c
+++ b/tests/check/gst/gstquery.c
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/check/gst/gstregistry.c b/tests/check/gst/gstregistry.c
index 13d9772..1a7ec91 100644
--- a/tests/check/gst/gstregistry.c
+++ b/tests/check/gst/gstregistry.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/gstsegment.c b/tests/check/gst/gstsegment.c
index 98d48c0..4c15133 100644
--- a/tests/check/gst/gstsegment.c
+++ b/tests/check/gst/gstsegment.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gststructure.c b/tests/check/gst/gststructure.c
index 6427481..86cd393 100644
--- a/tests/check/gst/gststructure.c
+++ b/tests/check/gst/gststructure.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/check/gst/gstsystemclock.c b/tests/check/gst/gstsystemclock.c
index 946933c..7d5a146 100644
--- a/tests/check/gst/gstsystemclock.c
+++ b/tests/check/gst/gstsystemclock.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c
index ed2e24b..fe770a0 100644
--- a/tests/check/gst/gsttag.c
+++ b/tests/check/gst/gsttag.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gsttagsetter.c b/tests/check/gst/gsttagsetter.c
index 62c6a5c..11c16b8 100644
--- a/tests/check/gst/gsttagsetter.c
+++ b/tests/check/gst/gsttagsetter.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gsttask.c b/tests/check/gst/gsttask.c
index 699219f..986c403 100644
--- a/tests/check/gst/gsttask.c
+++ b/tests/check/gst/gsttask.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gsttoc.c b/tests/check/gst/gsttoc.c
index 4a03cd7..fc5d07b 100644
--- a/tests/check/gst/gsttoc.c
+++ b/tests/check/gst/gsttoc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*  -------  TOC  -------
diff --git a/tests/check/gst/gsttocsetter.c b/tests/check/gst/gsttocsetter.c
index 2d95ce8..047c1e9 100644
--- a/tests/check/gst/gsttocsetter.c
+++ b/tests/check/gst/gsttocsetter.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gsturi.c b/tests/check/gst/gsturi.c
index 259b3a0..1d53265 100644
--- a/tests/check/gst/gsturi.c
+++ b/tests/check/gst/gsturi.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstutils.c b/tests/check/gst/gstutils.c
index e0d0ff3..b1daf39 100644
--- a/tests/check/gst/gstutils.c
+++ b/tests/check/gst/gstutils.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1089,22 +1089,6 @@
   guint32 uarray[2];
   guint8 *cpointer;
 
-#define fail_unless_equals_int_hex(a, b)                                \
-G_STMT_START {								\
-  int first = a;							\
-  int second = b;							\
-  fail_unless(first == second,						\
-    "'" #a "' (0x%08x) is not equal to '" #b"' (0x%08x)", first, second);	\
-} G_STMT_END;
-
-#define fail_unless_equals_int64_hex(a, b)                                \
-G_STMT_START {								\
-  gint64 first = a;							\
-  gint64 second = b;							\
-  fail_unless(first == second,						\
-    "'" #a "' (0x%016x) is not equal to '" #b"' (0x%016x)", first, second);	\
-} G_STMT_END;
-
   memcpy (uarray, carray, 8);
   cpointer = carray;
 
@@ -1240,10 +1224,86 @@
       0x4142434445464748);
   fail_unless_equals_int64_hex (GST_READ_UINT64_LE (uarray),
       0x4847464544434241);
+
+  /* make sure the data argument is not duplicated inside the macro
+   * with possibly unexpected side-effects */
+  cpointer = carray;
+  fail_unless_equals_int (GST_READ_UINT8 (cpointer++), 'A');
+  fail_unless (cpointer == carray + 1);
+
+  cpointer = carray;
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer++), 0x4142);
+  fail_unless (cpointer == carray + 1);
+
+  cpointer = carray;
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (cpointer++), 0x41424344);
+  fail_unless (cpointer == carray + 1);
+
+  cpointer = carray;
+  fail_unless_equals_int64_hex (GST_READ_UINT64_BE (cpointer++),
+      0x4142434445464748);
+  fail_unless (cpointer == carray + 1);
 }
 
 GST_END_TEST;
 
+GST_START_TEST (test_write_macros)
+{
+  guint8 carray[8];
+  guint8 *cpointer;
+
+  /* make sure the data argument is not duplicated inside the macro
+   * with possibly unexpected side-effects */
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT8 (cpointer++, 'A');
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'A');
+
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT16_BE (cpointer++, 0x4142);
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'A');
+  fail_unless_equals_int (carray[1], 'B');
+
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT32_BE (cpointer++, 0x41424344);
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'A');
+  fail_unless_equals_int (carray[3], 'D');
+
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT64_BE (cpointer++, 0x4142434445464748);
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'A');
+  fail_unless_equals_int (carray[7], 'H');
+
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT16_LE (cpointer++, 0x4142);
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'B');
+  fail_unless_equals_int (carray[1], 'A');
+
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT32_LE (cpointer++, 0x41424344);
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'D');
+  fail_unless_equals_int (carray[3], 'A');
+
+  memset (carray, 0, sizeof (carray));
+  cpointer = carray;
+  GST_WRITE_UINT64_LE (cpointer++, 0x4142434445464748);
+  fail_unless_equals_pointer (cpointer, carray + 1);
+  fail_unless_equals_int (carray[0], 'H');
+  fail_unless_equals_int (carray[7], 'A');
+}
+
+GST_END_TEST;
 static Suite *
 gst_utils_suite (void)
 {
@@ -1279,6 +1339,7 @@
   tcase_add_test (tc_chain, test_greatest_common_divisor);
 
   tcase_add_test (tc_chain, test_read_macros);
+  tcase_add_test (tc_chain, test_write_macros);
   return s;
 }
 
diff --git a/tests/check/gst/gstvalue.c b/tests/check/gst/gstvalue.c
index 480840b..babe914 100644
--- a/tests/check/gst/gstvalue.c
+++ b/tests/check/gst/gstvalue.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -810,16 +810,6 @@
   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;
@@ -1919,27 +1909,6 @@
 
 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)
 {
   GstStructure *s;
@@ -2868,7 +2837,6 @@
   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);
diff --git a/tests/check/gst/struct_arm.h b/tests/check/gst/struct_arm.h
index b7a2952..db6ed90 100644
--- a/tests/check/gst/struct_arm.h
+++ b/tests/check/gst/struct_arm.h
@@ -1,72 +1,73 @@
-static GstCheckABIStruct list[] = {
-  {"GstAllocationParams", sizeof (GstAllocationParams), 64},
-  {"GstAllocator", sizeof (GstAllocator), 176},
-  {"GstAllocatorClass", sizeof (GstAllocatorClass), 232},
-  {"GstBinClass", sizeof (GstBinClass), 576},
-  {"GstBin", sizeof (GstBin), 376},
-  {"GstBuffer", sizeof (GstBuffer), 112},
-  {"GstBufferPoolAcquireParams", sizeof (GstBufferPoolAcquireParams), 64},
-  {"GstBufferPool", sizeof (GstBufferPool), 136},
-  {"GstBufferPoolClass", sizeof (GstBufferPoolClass), 288},
-  {"GstBusClass", sizeof (GstBusClass), 232},
-  {"GstBus", sizeof (GstBus), 128},
-  {"GstCaps", sizeof (GstCaps), 64},
-  {"GstChildProxyInterface", sizeof (GstChildProxyInterface), 88},
-  {"GstClockClass", sizeof (GstClockClass), 264},
-  {"GstClockEntry", sizeof (GstClockEntry), 112},
-  {"GstClock", sizeof (GstClock), 128},
-  {"GstControlBinding", sizeof (GstControlBinding), 152},
-  {"GstControlBindingClass", sizeof (GstControlBindingClass), 248},
-  {"GstControlSource", sizeof (GstControlSource), 136},
-  {"GstControlSourceClass", sizeof (GstControlSourceClass), 216},
-  {"GstDebugCategory", sizeof (GstDebugCategory), 24},
-  {"GstElementClass", sizeof (GstElementClass), 488},
-  {"GstElement", sizeof (GstElement), 264},
-  {"GstEvent", sizeof (GstEvent), 88},
-  {"GstFormatDefinition", sizeof (GstFormatDefinition), 32},
-  {"GstGhostPadClass", sizeof (GstGhostPadClass), 272},
-  {"GstGhostPad", sizeof (GstGhostPad), 536},
-  {"GstIterator", sizeof (GstIterator), 120},
-  {"GstMemory", sizeof (GstMemory), 112},
-  {"GstMapInfo", sizeof (GstMapInfo), 104},
-  {"GstMessage", sizeof (GstMessage), 120},
-  {"GstMeta", sizeof (GstMeta), 16},
-  {"GstMetaTransformCopy", sizeof (GstMetaTransformCopy), 24},
-  {"GstMetaInfo", sizeof (GstMetaInfo), 80},
-  {"GstMiniObject", sizeof (GstMiniObject), 64},
-  {"GstObjectClass", sizeof (GstObjectClass), 184},
-  {"GstObject", sizeof (GstObject), 88},
-  {"GstPadClass", sizeof (GstPadClass), 232},
-  {"GstPad", sizeof (GstPad), 520},
-  {"GstPadProbeInfo", sizeof (GstPadProbeInfo), 72},
-  {"GstPadTemplateClass", sizeof (GstPadTemplateClass), 224},
-  {"GstPadTemplate", sizeof (GstPadTemplate), 144},
-  {"GstParamSpecFraction", sizeof (GstParamSpecFraction), 96},
-  {"GstPipelineClass", sizeof (GstPipelineClass), 608},
-  {"GstPipeline", sizeof (GstPipeline), 440},
-  {"GstPluginDesc", sizeof (GstPluginDesc), 112},
-  {"GstPresetInterface", sizeof (GstPresetInterface), 112},
-  {"GstProxyPadClass", sizeof (GstProxyPadClass), 240},
-  {"GstProxyPad", sizeof (GstProxyPad), 528},
-  {"GstQuery", sizeof (GstQuery), 72},
-  {"GstRegistryClass", sizeof (GstRegistryClass), 184},
-  {"GstRegistry", sizeof (GstRegistry), 96},
-  {"GstSegment", sizeof (GstSegment), 120},
-  {"GstStaticCaps", sizeof (GstStaticCaps), 48},
-  {"GstStaticPadTemplate", sizeof (GstStaticPadTemplate), 64},
-  {"GstStructure", sizeof (GstStructure), 16},
-  {"GstSystemClockClass", sizeof (GstSystemClockClass), 296},
-  {"GstSystemClock", sizeof (GstSystemClock), 168},
-  {"GstTagList", sizeof (GstTagList), 64,},
-  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 16},
-  {"GstTaskClass", sizeof (GstTaskClass), 224},
-  {"GstTask", sizeof (GstTask), 200},
-  {"GstTaskPoolClass", sizeof (GstTaskPoolClass), 248},
-  {"GstTaskPool", sizeof (GstTaskPool), 128},
+
+GstCheckABIStruct list[] = {
+  {"GstAllocationParams", sizeof (GstAllocationParams), 32},
+  {"GstAllocator", sizeof (GstAllocator), 112},
+  {"GstAllocatorClass", sizeof (GstAllocatorClass), 116},
+  {"GstBinClass", sizeof (GstBinClass), 292},
+  {"GstBin", sizeof (GstBin), 248},
+  {"GstBuffer", sizeof (GstBuffer), 80},
+  {"GstBufferPoolAcquireParams", sizeof (GstBufferPoolAcquireParams), 48},
+  {"GstBufferPool", sizeof (GstBufferPool), 88},
+  {"GstBufferPoolClass", sizeof (GstBufferPoolClass), 144},
+  {"GstBusClass", sizeof (GstBusClass), 116},
+  {"GstBus", sizeof (GstBus), 88},
+  {"GstCaps", sizeof (GstCaps), 36},
+  {"GstChildProxyInterface", sizeof (GstChildProxyInterface), 44},
+  {"GstClockClass", sizeof (GstClockClass), 132},
+  {"GstClockEntry", sizeof (GstClockEntry), 72},
+  {"GstClock", sizeof (GstClock), 88},
+  {"GstControlBinding", sizeof (GstControlBinding), 96},
+  {"GstControlBindingClass", sizeof (GstControlBindingClass), 124},
+  {"GstControlSource", sizeof (GstControlSource), 88},
+  {"GstControlSourceClass", sizeof (GstControlSourceClass), 108},
+  {"GstDebugCategory", sizeof (GstDebugCategory), 16},
+  {"GstElementClass", sizeof (GstElementClass), 248},
+  {"GstElement", sizeof (GstElement), 184},
+  {"GstEvent", sizeof (GstEvent), 56},
+  {"GstFormatDefinition", sizeof (GstFormatDefinition), 16},
+  {"GstGhostPadClass", sizeof (GstGhostPadClass), 136},
+  {"GstGhostPad", sizeof (GstGhostPad), 320},
+  {"GstIterator", sizeof (GstIterator), 60},
+  {"GstMemory", sizeof (GstMemory), 60},
+  {"GstMapInfo", sizeof (GstMapInfo), 52},
+  {"GstMessage", sizeof (GstMessage), 80},
+  {"GstMeta", sizeof (GstMeta), 8},
+  {"GstMetaTransformCopy", sizeof (GstMetaTransformCopy), 12},
+  {"GstMetaInfo", sizeof (GstMetaInfo), 40},
+  {"GstMiniObject", sizeof (GstMiniObject), 36},
+  {"GstObjectClass", sizeof (GstObjectClass), 92},
+  {"GstObject", sizeof (GstObject), 64},
+  {"GstPadClass", sizeof (GstPadClass), 116},
+  {"GstPad", sizeof (GstPad), 304},
+  {"GstPadProbeInfo", sizeof (GstPadProbeInfo), 48},
+  {"GstPadTemplateClass", sizeof (GstPadTemplateClass), 112},
+  {"GstPadTemplate", sizeof (GstPadTemplate), 96},
+  {"GstParamSpecFraction", sizeof (GstParamSpecFraction), 64},
+  {"GstPipelineClass", sizeof (GstPipelineClass), 308},
+  {"GstPipeline", sizeof (GstPipeline), 296},
+  {"GstPluginDesc", sizeof (GstPluginDesc), 60},
+  {"GstPresetInterface", sizeof (GstPresetInterface), 56},
+  {"GstProxyPadClass", sizeof (GstProxyPadClass), 120},
+  {"GstProxyPad", sizeof (GstProxyPad), 312},
+  {"GstQuery", sizeof (GstQuery), 40},
+  {"GstRegistryClass", sizeof (GstRegistryClass), 92},
+  {"GstRegistry", sizeof (GstRegistry), 72},
+  {"GstSegment", sizeof (GstSegment), 104},
+  {"GstStaticCaps", sizeof (GstStaticCaps), 24},
+  {"GstStaticPadTemplate", sizeof (GstStaticPadTemplate), 36},
+  {"GstStructure", sizeof (GstStructure), 8},
+  {"GstSystemClockClass", sizeof (GstSystemClockClass), 148},
+  {"GstSystemClock", sizeof (GstSystemClock), 112},
+  {"GstTagList", sizeof (GstTagList), 36},
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 8},
+  {"GstTaskClass", sizeof (GstTaskClass), 112},
+  {"GstTask", sizeof (GstTask), 128},
+  {"GstTaskPoolClass", sizeof (GstTaskPoolClass), 124},
+  {"GstTaskPool", sizeof (GstTaskPool), 88},
   {"GstTimedValue", sizeof (GstTimedValue), 16},
-  {"GstTocSetterInterface", sizeof (GstTocSetterInterface), 16},
-  {"GstTypeFind", sizeof (GstTypeFind), 64},
-  {"GstURIHandlerInterface", sizeof (GstURIHandlerInterface), 48},
-  {"GstValueTable", sizeof (GstValueTable), 64},
+  {"GstTocSetterInterface", sizeof (GstTocSetterInterface), 8},
+  {"GstTypeFind", sizeof (GstTypeFind), 32},
+  {"GstURIHandlerInterface", sizeof (GstURIHandlerInterface), 24},
+  {"GstValueTable", sizeof (GstValueTable), 32},
   {NULL, 0, 0}
 };
diff --git a/tests/check/libs/adapter.c b/tests/check/libs/adapter.c
index e3b801a..df740f9 100644
--- a/tests/check/libs/adapter.c
+++ b/tests/check/libs/adapter.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -376,7 +376,7 @@
   fail_unless (avail == 100);
 
   /* timestamp is now undefined */
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == GST_CLOCK_TIME_NONE);
   fail_unless (dist == 0);
 
@@ -385,7 +385,7 @@
   fail_unless (avail == 50);
 
   /* still undefined, dist changed, though */
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == GST_CLOCK_TIME_NONE);
   fail_unless (dist == 50);
 
@@ -398,7 +398,7 @@
   fail_unless (avail == 150);
 
   /* timestamp is still undefined */
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == GST_CLOCK_TIME_NONE);
   fail_unless (dist == 50);
 
@@ -407,7 +407,7 @@
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 100);
 
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 1 * GST_SECOND);
   fail_unless (dist == 0);
 
@@ -416,7 +416,7 @@
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 50);
 
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 1 * GST_SECOND);
   fail_unless (dist == 50);
 
@@ -433,7 +433,7 @@
   fail_unless (avail == 250);
 
   /* timestamp still as it was before the push */
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 1 * GST_SECOND);
   fail_unless (dist == 50);
 
@@ -441,7 +441,7 @@
   gst_adapter_flush (adapter, 50);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 200);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 1 * GST_SECOND);
   fail_unless (dist == 100);
 
@@ -449,7 +449,7 @@
   gst_adapter_flush (adapter, 50);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 150);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 1 * GST_SECOND);
   fail_unless (dist == 150);
 
@@ -457,7 +457,7 @@
   gst_adapter_flush (adapter, 50);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 100);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 2 * GST_SECOND);
   fail_unless (dist == 0);
 
@@ -465,7 +465,7 @@
   gst_adapter_flush (adapter, 100);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 0);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 2 * GST_SECOND);
   fail_unless (dist == 100);
 
@@ -473,7 +473,7 @@
   gst_adapter_clear (adapter);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 0);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == GST_CLOCK_TIME_NONE);
   fail_unless (dist == 0);
 
@@ -483,7 +483,7 @@
   gst_adapter_push (adapter, buffer);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 0);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 2 * GST_SECOND);
   fail_unless (dist == 0);
 
@@ -493,7 +493,7 @@
   gst_adapter_push (adapter, buffer);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 0);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 2 * GST_SECOND);
   fail_unless (dist == 0);
 
@@ -503,14 +503,14 @@
   gst_adapter_push (adapter, buffer);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 100);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 2 * GST_SECOND);
   fail_unless (dist == 0);
 
   gst_adapter_flush (adapter, 1);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 99);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 4 * GST_SECOND);
   fail_unless (dist == 1);
 
@@ -520,7 +520,7 @@
   gst_adapter_push (adapter, buffer);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 99);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 4 * GST_SECOND);
   fail_unless (dist == 1);
 
@@ -529,7 +529,7 @@
   gst_adapter_push (adapter, buffer);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 199);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 4 * GST_SECOND);
   fail_unless (dist == 1);
 
@@ -540,7 +540,7 @@
   gst_buffer_unref (buffer);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 100);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 5 * GST_SECOND);
   fail_unless (dist == 0);
 
@@ -554,7 +554,7 @@
   g_free (data);
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 50);
-  timestamp = gst_adapter_prev_timestamp (adapter, &dist);
+  timestamp = gst_adapter_prev_pts (adapter, &dist);
   fail_unless (timestamp == 5 * GST_SECOND);
   fail_unless (dist == 50);
 
diff --git a/tests/check/libs/basesink.c b/tests/check/libs/basesink.c
index 595c4ce..2953ce7 100644
--- a/tests/check/libs/basesink.c
+++ b/tests/check/libs/basesink.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/basesrc.c b/tests/check/libs/basesrc.c
index 21e2481..b9e66d1 100644
--- a/tests/check/libs/basesrc.c
+++ b/tests/check/libs/basesrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/bitreader.c b/tests/check/libs/bitreader.c
index 1cdb55d..8910c36 100644
--- a/tests/check/libs/bitreader.c
+++ b/tests/check/libs/bitreader.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/bytereader.c b/tests/check/libs/bytereader.c
index 0aa41c5..ecb3ddb 100644
--- a/tests/check/libs/bytereader.c
+++ b/tests/check/libs/bytereader.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/bytewriter.c b/tests/check/libs/bytewriter.c
index fab4a5e..89999af 100644
--- a/tests/check/libs/bytewriter.c
+++ b/tests/check/libs/bytewriter.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/collectpads.c b/tests/check/libs/collectpads.c
index fea3f67..97d2e65 100644
--- a/tests/check/libs/collectpads.c
+++ b/tests/check/libs/collectpads.c
@@ -17,18 +17,254 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstcollectpads.h>
 
+/* dummy collectpads based element */
+
+#define GST_TYPE_AGGREGATOR            (gst_aggregator_get_type ())
+#define GST_AGGREGATOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_AGGREGATOR, GstAggregator))
+#define GST_AGGREGATOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_AGGREGATOR, GstAggregatorClass))
+#define GST_AGGREGATOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_AGGREGATOR, GstAggregatorClass))
+
+typedef struct _GstAggregator GstAggregator;
+typedef struct _GstAggregatorClass GstAggregatorClass;
+
+struct _GstAggregator
+{
+  GstElement parent;
+  GstCollectPads *collect;
+  GstPad *srcpad;
+  GstPad *sinkpad[2];
+  gint padcount;
+  gboolean first;
+};
+struct _GstAggregatorClass
+{
+  GstElementClass parent_class;
+};
+
+static GType gst_aggregator_get_type (void);
+
+G_DEFINE_TYPE (GstAggregator, gst_aggregator, GST_TYPE_ELEMENT);
+
+static GstStaticPadTemplate gst_aggregator_src_template =
+GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate gst_aggregator_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink_%u", GST_PAD_SINK, GST_PAD_REQUEST,
+    GST_STATIC_CAPS_ANY);
+
+static GstFlowReturn
+gst_agregator_collected (GstCollectPads * pads, gpointer user_data)
+{
+  GstAggregator *aggregator = GST_AGGREGATOR (user_data);
+  GstBuffer *inbuf;
+  GstCollectData *collect_data = (GstCollectData *) pads->data->data;
+  guint outsize = gst_collect_pads_available (pads);
+
+  /* can only happen when no pads to collect or all EOS */
+  if (outsize == 0)
+    goto eos;
+
+  inbuf = gst_collect_pads_take_buffer (pads, collect_data, outsize);
+  if (!inbuf)
+    goto eos;
+
+  if (aggregator->first) {
+    GstSegment segment;
+
+    gst_segment_init (&segment, GST_FORMAT_BYTES);
+    gst_pad_push_event (aggregator->srcpad,
+        gst_event_new_stream_start ("test"));
+    gst_pad_push_event (aggregator->srcpad, gst_event_new_segment (&segment));
+    aggregator->first = FALSE;
+  }
+
+  /* just forward the first buffer */
+  GST_DEBUG_OBJECT (aggregator, "forward buffer %p", inbuf);
+  return gst_pad_push (aggregator->srcpad, inbuf);
+  /* ERRORS */
+eos:
+  {
+    GST_DEBUG_OBJECT (aggregator, "no data available, must be EOS");
+    gst_pad_push_event (aggregator->srcpad, gst_event_new_eos ());
+    return GST_FLOW_EOS;
+  }
+}
+
+static GstPad *
+gst_aggregator_request_new_pad (GstElement * element, GstPadTemplate * templ,
+    const gchar * unused, const GstCaps * caps)
+{
+  GstAggregator *aggregator = GST_AGGREGATOR (element);
+  gchar *name;
+  GstPad *newpad;
+  gint padcount;
+
+  if (templ->direction != GST_PAD_SINK)
+    return NULL;
+
+  /* create new pad */
+  padcount = g_atomic_int_add (&aggregator->padcount, 1);
+  name = g_strdup_printf ("sink_%u", padcount);
+  newpad = gst_pad_new_from_template (templ, name);
+  g_free (name);
+
+  gst_collect_pads_add_pad (aggregator->collect, newpad,
+      sizeof (GstCollectData), NULL, TRUE);
+
+  /* takes ownership of the pad */
+  if (!gst_element_add_pad (GST_ELEMENT (aggregator), newpad))
+    goto could_not_add;
+
+  GST_DEBUG_OBJECT (aggregator, "added new pad %s", GST_OBJECT_NAME (newpad));
+  return newpad;
+
+  /* errors */
+could_not_add:
+  {
+    GST_DEBUG_OBJECT (aggregator, "could not add pad");
+    gst_collect_pads_remove_pad (aggregator->collect, newpad);
+    gst_object_unref (newpad);
+    return NULL;
+  }
+}
+
+static void
+gst_aggregator_release_pad (GstElement * element, GstPad * pad)
+{
+  GstAggregator *aggregator = GST_AGGREGATOR (element);
+
+  if (aggregator->collect)
+    gst_collect_pads_remove_pad (aggregator->collect, pad);
+  gst_element_remove_pad (element, pad);
+}
+
+static GstStateChangeReturn
+gst_aggregator_change_state (GstElement * element, GstStateChange transition)
+{
+  GstAggregator *aggregator = GST_AGGREGATOR (element);
+  GstStateChangeReturn ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      gst_collect_pads_start (aggregator->collect);
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      /* need to unblock the collectpads before calling the
+       * parent change_state so that streaming can finish */
+      gst_collect_pads_stop (aggregator->collect);
+      break;
+    default:
+      break;
+  }
+
+  ret =
+      GST_ELEMENT_CLASS (gst_aggregator_parent_class)->change_state (element,
+      transition);
+
+  switch (transition) {
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_aggregator_dispose (GObject * object)
+{
+  GstAggregator *aggregator = GST_AGGREGATOR (object);
+
+  if (aggregator->collect) {
+    gst_object_unref (aggregator->collect);
+    aggregator->collect = NULL;
+  }
+
+  G_OBJECT_CLASS (gst_aggregator_parent_class)->dispose (object);
+}
+
+static void
+gst_aggregator_class_init (GstAggregatorClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+  GstElementClass *gstelement_class = (GstElementClass *) klass;
+
+  gobject_class->dispose = gst_aggregator_dispose;
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_aggregator_src_template));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_aggregator_sink_template));
+  gst_element_class_set_static_metadata (gstelement_class, "Aggregator",
+      "Testing", "Combine N buffers", "Stefan Sauer <ensonic@users.sf.net>");
+
+  gstelement_class->request_new_pad =
+      GST_DEBUG_FUNCPTR (gst_aggregator_request_new_pad);
+  gstelement_class->release_pad =
+      GST_DEBUG_FUNCPTR (gst_aggregator_release_pad);
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_aggregator_change_state);
+}
+
+static void
+gst_aggregator_init (GstAggregator * agregator)
+{
+  GstPadTemplate *template;
+
+  template = gst_static_pad_template_get (&gst_aggregator_src_template);
+  agregator->srcpad = gst_pad_new_from_template (template, "src");
+  gst_object_unref (template);
+
+  GST_PAD_SET_PROXY_CAPS (agregator->srcpad);
+  gst_element_add_pad (GST_ELEMENT (agregator), agregator->srcpad);
+
+  /* keep track of the sinkpads requested */
+  agregator->collect = gst_collect_pads_new ();
+  gst_collect_pads_set_function (agregator->collect,
+      GST_DEBUG_FUNCPTR (gst_agregator_collected), agregator);
+
+  agregator->first = TRUE;
+}
+
+static gboolean
+gst_agregator_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "aggregator", GST_RANK_NONE,
+      GST_TYPE_AGGREGATOR);
+}
+
+static gboolean
+gst_agregator_plugin_register (void)
+{
+  return gst_plugin_register_static (GST_VERSION_MAJOR,
+      GST_VERSION_MINOR,
+      "aggregator",
+      "Combine buffers",
+      gst_agregator_plugin_init,
+      VERSION, GST_LICENSE, PACKAGE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
+}
+
+
 #define fail_unless_collected(expected)           \
 G_STMT_START {                                    \
   g_mutex_lock (&lock);                           \
   while (expected == TRUE && collected == FALSE)  \
-    g_cond_wait (&cond,& lock);                   \
+    g_cond_wait (&cond, &lock);                   \
   fail_unless_equals_int (collected, expected);   \
   g_mutex_unlock (&lock);                         \
 } G_STMT_END;
@@ -61,6 +297,7 @@
 static GstPad *srcpad1, *srcpad2;
 static GstPad *sinkpad1, *sinkpad2;
 static TestData *data1, *data2;
+static GstBuffer *outbuf1, *outbuf2;
 
 static GMutex lock;
 static GCond cond;
@@ -68,6 +305,26 @@
 static GstFlowReturn
 collected_cb (GstCollectPads * pads, gpointer user_data)
 {
+  outbuf1 = gst_collect_pads_pop (pads, (GstCollectData *) data1);
+  outbuf2 = gst_collect_pads_pop (pads, (GstCollectData *) data2);
+
+  g_mutex_lock (&lock);
+  collected = TRUE;
+  g_cond_signal (&cond);
+  g_mutex_unlock (&lock);
+
+  return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+handle_buffer_cb (GstCollectPads * pads, GstCollectData * data,
+    GstBuffer * buf, gpointer user_data)
+{
+  GST_DEBUG ("collected buffers via callback");
+
+  outbuf1 = gst_collect_pads_pop (pads, (GstCollectData *) data1);
+  outbuf2 = gst_collect_pads_pop (pads, (GstCollectData *) data2);
+
   g_mutex_lock (&lock);
   collected = TRUE;
   g_cond_signal (&cond);
@@ -82,6 +339,7 @@
   GstFlowReturn flow;
   GstCaps *caps;
   TestData *test_data = (TestData *) user_data;
+  GstSegment segment;
 
   gst_pad_push_event (test_data->pad, gst_event_new_stream_start ("test"));
 
@@ -89,6 +347,9 @@
   gst_pad_push_event (test_data->pad, gst_event_new_caps (caps));
   gst_caps_unref (caps);
 
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  gst_pad_push_event (test_data->pad, gst_event_new_segment (&segment));
+
   flow = gst_pad_push (test_data->pad, test_data->buffer);
   fail_unless (flow == GST_FLOW_OK, "got flow %s instead of OK",
       gst_flow_get_name (flow));
@@ -107,10 +368,9 @@
 }
 
 static void
-setup (void)
+setup_default (void)
 {
   collect = gst_collect_pads_new ();
-  gst_collect_pads_set_function (collect, collected_cb, NULL);
 
   srcpad1 = gst_pad_new_from_static_template (&srctemplate, "src1");
   srcpad2 = gst_pad_new_from_static_template (&srctemplate, "src2");
@@ -126,10 +386,26 @@
 
   data1 = NULL;
   data2 = NULL;
+  outbuf1 = NULL;
+  outbuf2 = NULL;
   collected = FALSE;
 }
 
 static void
+setup (void)
+{
+  setup_default ();
+  gst_collect_pads_set_function (collect, collected_cb, NULL);
+}
+
+static void
+setup_buffer_cb (void)
+{
+  setup_default ();
+  gst_collect_pads_set_buffer_function (collect, handle_buffer_cb, NULL);
+}
+
+static void
 teardown (void)
 {
   gst_object_unref (sinkpad1);
@@ -154,7 +430,7 @@
 
 GST_START_TEST (test_collect)
 {
-  GstBuffer *buf1, *buf2, *tmp;
+  GstBuffer *buf1, *buf2;
   GThread *thread1, *thread2;
 
   data1 = (TestData *) gst_collect_pads_add_pad (collect,
@@ -185,10 +461,8 @@
   /* now both pads have a buffer */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
-  fail_unless (tmp == buf1);
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
-  fail_unless (tmp == buf2);
+  fail_unless (outbuf1 == buf1);
+  fail_unless (outbuf2 == buf2);
 
   /* these will return immediately as at this point the threads have been
    * unlocked and are finished */
@@ -203,9 +477,10 @@
 
 GST_END_TEST;
 
+
 GST_START_TEST (test_collect_eos)
 {
-  GstBuffer *buf1, *tmp;
+  GstBuffer *buf1;
   GThread *thread1, *thread2;
 
   data1 = (TestData *) gst_collect_pads_add_pad (collect,
@@ -234,11 +509,9 @@
   /* now sinkpad1 has a buffer and sinkpad2 has EOS */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
-  fail_unless (tmp == buf1);
+  fail_unless (outbuf1 == buf1);
   /* sinkpad2 has EOS so a NULL buffer is returned */
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
-  fail_unless (tmp == NULL);
+  fail_unless (outbuf2 == NULL);
 
   /* these will return immediately as when the data is popped the threads are
    * unlocked and will terminate */
@@ -254,7 +527,7 @@
 
 GST_START_TEST (test_collect_twice)
 {
-  GstBuffer *buf1, *buf2, *tmp;
+  GstBuffer *buf1, *buf2;
   GThread *thread1, *thread2;
 
   data1 = (TestData *) gst_collect_pads_add_pad (collect,
@@ -287,11 +560,9 @@
   /* one of the pads has a buffer, the other has EOS */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
-  fail_unless (tmp == buf1);
+  fail_unless (outbuf1 == buf1);
   /* there's nothing to pop from the one which received EOS */
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
-  fail_unless (tmp == NULL);
+  fail_unless (outbuf2 == NULL);
 
   /* these will return immediately as at this point the threads have been
    * unlocked and are finished */
@@ -326,10 +597,8 @@
   /* now both pads have a buffer */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
-  fail_unless (tmp == buf1);
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
-  fail_unless (tmp == buf2);
+  fail_unless (outbuf1 == buf1);
+  fail_unless (outbuf2 == buf2);
 
   /* these will return immediately as at this point the threads have been
    * unlocked and are finished */
@@ -345,11 +614,171 @@
 
 GST_END_TEST;
 
+
+/* Test the default collected buffer func */
+GST_START_TEST (test_collect_default)
+{
+  GstBuffer *buf1, *buf2;
+  GThread *thread1, *thread2;
+
+  data1 = (TestData *) gst_collect_pads_add_pad (collect,
+      sinkpad1, sizeof (TestData), NULL, TRUE);
+  fail_unless (data1 != NULL);
+
+  data2 = (TestData *) gst_collect_pads_add_pad (collect,
+      sinkpad2, sizeof (TestData), NULL, TRUE);
+  fail_unless (data2 != NULL);
+
+  buf1 = gst_buffer_new ();
+  GST_BUFFER_TIMESTAMP (buf1) = 0;
+  buf2 = gst_buffer_new ();
+  GST_BUFFER_TIMESTAMP (buf2) = GST_SECOND;
+
+  /* start collect pads */
+  gst_collect_pads_start (collect);
+
+  /* push buffers on the pads */
+  data1->pad = srcpad1;
+  data1->buffer = buf1;
+  thread1 = g_thread_try_new ("gst-check", push_buffer, data1, NULL);
+  /* here thread1 is blocked and srcpad1 has a queued buffer */
+  fail_unless_collected (FALSE);
+
+  data2->pad = srcpad2;
+  data2->buffer = buf2;
+  thread2 = g_thread_try_new ("gst-check", push_buffer, data2, NULL);
+
+  /* now both pads have a buffer */
+  fail_unless_collected (TRUE);
+
+  /* The default callback should have popped the buffer with lower timestamp,
+   * and this should therefore be NULL: */
+  fail_unless (outbuf1 == NULL);
+  /* While this one should still be pending: */
+  fail_unless (outbuf2 == buf2);
+
+  /* these will return immediately as at this point the threads have been
+   * unlocked and are finished */
+  g_thread_join (thread1);
+  g_thread_join (thread2);
+
+  gst_collect_pads_stop (collect);
+
+  gst_buffer_unref (buf1);
+  gst_buffer_unref (buf2);
+}
+
+GST_END_TEST;
+
+
+#define NUM_BUFFERS 3
+static void
+handoff (GstElement * fakesink, GstBuffer * buf, GstPad * pad, guint * count)
+{
+  *count = *count + 1;
+}
+
+/* Test a linear pipeline using aggregator */
+GST_START_TEST (test_linear_pipeline)
+{
+  GstElement *pipeline, *src, *agg, *sink;
+  GstBus *bus;
+  GstMessage *msg;
+  gint count = 0;
+
+  pipeline = gst_pipeline_new ("pipeline");
+  src = gst_check_setup_element ("fakesrc");
+  g_object_set (src, "num-buffers", NUM_BUFFERS, "sizetype", 2, "sizemax", 4,
+      NULL);
+  agg = gst_check_setup_element ("aggregator");
+  sink = gst_check_setup_element ("fakesink");
+  g_object_set (sink, "signal-handoffs", TRUE, NULL);
+  g_signal_connect (sink, "handoff", (GCallback) handoff, &count);
+
+  fail_unless (gst_bin_add (GST_BIN (pipeline), src));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), agg));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), sink));
+  fail_unless (gst_element_link (src, agg));
+  fail_unless (gst_element_link (agg, sink));
+
+  bus = gst_element_get_bus (pipeline);
+  fail_if (bus == NULL);
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  msg = gst_bus_poll (bus, GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1);
+  fail_if (GST_MESSAGE_TYPE (msg) != GST_MESSAGE_EOS);
+  gst_message_unref (msg);
+
+  fail_unless_equals_int (count, NUM_BUFFERS);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (bus);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+/* Test a linear pipeline using aggregator */
+GST_START_TEST (test_branched_pipeline)
+{
+  GstElement *pipeline, *src, *tee, *queue[2], *agg, *sink;
+  GstBus *bus;
+  GstMessage *msg;
+  gint count = 0;
+
+  pipeline = gst_pipeline_new ("pipeline");
+  src = gst_check_setup_element ("fakesrc");
+  g_object_set (src, "num-buffers", NUM_BUFFERS, "sizetype", 2, "sizemax", 4,
+      NULL);
+  tee = gst_check_setup_element ("tee");
+  queue[0] = gst_check_setup_element ("queue");
+  gst_object_set_name (GST_OBJECT (queue[0]), "queue0");
+  queue[1] = gst_check_setup_element ("queue");
+  gst_object_set_name (GST_OBJECT (queue[1]), "queue1");
+  agg = gst_check_setup_element ("aggregator");
+  sink = gst_check_setup_element ("fakesink");
+  g_object_set (sink, "signal-handoffs", TRUE, NULL);
+  g_signal_connect (sink, "handoff", (GCallback) handoff, &count);
+
+  fail_unless (gst_bin_add (GST_BIN (pipeline), src));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), tee));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), queue[0]));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), queue[1]));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), agg));
+  fail_unless (gst_bin_add (GST_BIN (pipeline), sink));
+  fail_unless (gst_element_link (src, tee));
+  fail_unless (gst_element_link (tee, queue[0]));
+  fail_unless (gst_element_link (tee, queue[1]));
+  fail_unless (gst_element_link (queue[0], agg));
+  fail_unless (gst_element_link (queue[1], agg));
+  fail_unless (gst_element_link (agg, sink));
+
+  bus = gst_element_get_bus (pipeline);
+  fail_if (bus == NULL);
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  msg = gst_bus_poll (bus, GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1);
+  fail_if (GST_MESSAGE_TYPE (msg) != GST_MESSAGE_EOS);
+  gst_message_unref (msg);
+
+  /* we have two branches, but we still only forward buffers from one branch */
+  fail_unless_equals_int (count, NUM_BUFFERS);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (bus);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 gst_collect_pads_suite (void)
 {
   Suite *suite;
-  TCase *general;
+  TCase *general, *buffers, *pipeline;
+
+  gst_agregator_plugin_register ();
 
   suite = suite_create ("GstCollectPads");
   general = tcase_create ("general");
@@ -360,6 +789,16 @@
   tcase_add_test (general, test_collect_eos);
   tcase_add_test (general, test_collect_twice);
 
+  buffers = tcase_create ("buffers");
+  suite_add_tcase (suite, buffers);
+  tcase_add_checked_fixture (buffers, setup_buffer_cb, teardown);
+  tcase_add_test (buffers, test_collect_default);
+
+  pipeline = tcase_create ("pipeline");
+  suite_add_tcase (suite, pipeline);
+  tcase_add_test (pipeline, test_linear_pipeline);
+  tcase_add_test (pipeline, test_branched_pipeline);
+
   return suite;
 }
 
diff --git a/tests/check/libs/controller.c b/tests/check/libs/controller.c
index bdb5e36..f385c6b 100644
--- a/tests/check/libs/controller.c
+++ b/tests/check/libs/controller.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1371,52 +1371,6 @@
 
 GST_END_TEST;
 
-/* test lfo control source with nothing set */
-GST_START_TEST (controller_lfo_none)
-{
-  GstControlSource *cs;
-  GstElement *elem;
-
-  elem = gst_element_factory_make ("testobj", NULL);
-
-  /* new lfo control source */
-  cs = gst_lfo_control_source_new ();
-
-  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_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_object_unref (cs);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
 /* test timed value handling in trigger mode */
 GST_START_TEST (controller_trigger_exact)
 {
@@ -1537,7 +1491,6 @@
   tcase_add_test (tc, controller_lfo_saw);
   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_trigger_exact);
   tcase_add_test (tc, controller_trigger_tolerance);
 
diff --git a/tests/check/libs/gstlibscpp.cc b/tests/check/libs/gstlibscpp.cc
index 0009ec3..f7f89e3 100644
--- a/tests/check/libs/gstlibscpp.cc
+++ b/tests/check/libs/gstlibscpp.cc
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/gstnetclientclock.c b/tests/check/libs/gstnetclientclock.c
index 72b7af3..117004f 100644
--- a/tests/check/libs/gstnetclientclock.c
+++ b/tests/check/libs/gstnetclientclock.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/libs/gstnettimeprovider.c b/tests/check/libs/gstnettimeprovider.c
index 49bfee0..3ba2bde 100644
--- a/tests/check/libs/gstnettimeprovider.c
+++ b/tests/check/libs/gstnettimeprovider.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/libs/gsttestclock.c b/tests/check/libs/gsttestclock.c
new file mode 100644
index 0000000..de59031
--- /dev/null
+++ b/tests/check/libs/gsttestclock.c
@@ -0,0 +1,969 @@
+/*
+ * Unit test for a deterministic clock for Gstreamer unit tests
+ *
+ * Copyright (C) 2008 Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
+ * Copyright (C) 2012 Sebastian Rasmussen <sebastian.rasmussen@axis.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/check/gsttestclock.h>
+
+typedef struct
+{
+  GstTestClock *test_clock;
+  GstClockID id;
+  GstClockTime reference;
+} GtuClockWaitContext;
+
+typedef struct
+{
+  GstClockID clock_id;
+  GstClockTimeDiff jitter;
+} SyncClockWaitContext;
+
+#define assert_pending_id(pending_id, id, type, time) \
+G_STMT_START { \
+  GstClockEntry *entry = GST_CLOCK_ENTRY (pending_id); \
+  g_assert (entry == (id)); \
+  g_assert (GST_CLOCK_ENTRY_TYPE (entry) == (type)); \
+  g_assert_cmpuint (GST_CLOCK_ENTRY_TIME (entry), ==, (time)); \
+} G_STMT_END
+
+#define assert_processed_id(processed_id, id, type, time) \
+G_STMT_START { \
+  GstClockEntry *entry = GST_CLOCK_ENTRY (processed_id); \
+  g_assert (entry == (id)); \
+  g_assert (GST_CLOCK_ENTRY_TYPE (entry) == (type)); \
+  g_assert_cmpuint (GST_CLOCK_ENTRY_STATUS (entry), ==, (time)); \
+} G_STMT_END
+
+static gpointer test_wait_pending_single_shot_id_sync_worker (gpointer data);
+static gpointer test_wait_pending_single_shot_id_async_worker (gpointer data);
+static gpointer test_wait_pending_periodic_id_waiter_thread (gpointer data);
+static gboolean test_async_wait_cb (GstClock * clock, GstClockTime time,
+    GstClockID id, gpointer user_data);
+
+static GtuClockWaitContext *gst_test_util_wait_for_clock_id_begin (GstTestClock
+    * clock, GstClockID id, GstClockTimeDiff * jitter);
+static GstClockReturn gst_test_util_wait_for_clock_id_end (GtuClockWaitContext *
+    wait_ctx);
+static gboolean
+gst_test_util_clock_wait_context_has_completed (GtuClockWaitContext * wait_ctx);
+
+static gpointer
+test_wait_pending_single_shot_id_sync_worker (gpointer data)
+{
+  SyncClockWaitContext *ctx = data;
+
+  gst_clock_id_wait (ctx->clock_id, &ctx->jitter);
+
+  return NULL;
+}
+
+static gpointer
+test_wait_pending_single_shot_id_async_worker (gpointer data)
+{
+  GstClockID clock_id = data;
+
+  g_usleep (G_USEC_PER_SEC / 10);
+  gst_clock_id_wait_async (clock_id, test_async_wait_cb, NULL, NULL);
+
+  return NULL;
+}
+
+static gpointer
+test_wait_pending_periodic_id_waiter_thread (gpointer data)
+{
+  GstClockID clock_id = data;
+  gst_clock_id_wait (clock_id, NULL);
+  return NULL;
+}
+
+static gboolean
+test_async_wait_cb (GstClock * clock,
+    GstClockTime time, GstClockID id, gpointer user_data)
+{
+
+  gboolean *wait_complete = user_data;
+
+  if (wait_complete != NULL)
+    *wait_complete = TRUE;
+
+  return TRUE;
+}
+
+static GtuClockWaitContext *
+gst_test_util_wait_for_clock_id_begin (GstTestClock * test_clock, GstClockID id,
+    GstClockTimeDiff * jitter)
+{
+  GtuClockWaitContext *wait_ctx;
+
+  wait_ctx = g_slice_new (GtuClockWaitContext);
+  wait_ctx->test_clock = gst_object_ref (test_clock);
+  wait_ctx->reference = gst_clock_get_time (GST_CLOCK (wait_ctx->test_clock));
+  wait_ctx->id = gst_clock_id_ref (id);
+
+  if (jitter) {
+    GstClockEntry *entry = GST_CLOCK_ENTRY (wait_ctx->id);
+    GstClockTime requested = GST_CLOCK_ENTRY_TIME (entry);
+    GstClockTime reference = wait_ctx->reference;
+
+    *jitter = GST_CLOCK_DIFF (requested, reference);
+  }
+
+  if (!gst_test_clock_has_id (wait_ctx->test_clock, wait_ctx->id)) {
+    GstClockClass *klass = GST_CLOCK_GET_CLASS (wait_ctx->test_clock);
+    GstClock *clock = GST_CLOCK (wait_ctx->test_clock);
+    g_assert (klass->wait_async (clock, wait_ctx->id) == GST_CLOCK_OK);
+  }
+
+  g_assert (gst_test_clock_has_id (wait_ctx->test_clock, wait_ctx->id));
+  g_assert_cmpint (gst_test_clock_peek_id_count (wait_ctx->test_clock), >, 0);
+
+  return wait_ctx;
+}
+
+static GstClockReturn
+gst_test_util_wait_for_clock_id_end (GtuClockWaitContext * wait_ctx)
+{
+  GstClockReturn status = GST_CLOCK_ERROR;
+  GstClockEntry *entry = GST_CLOCK_ENTRY (wait_ctx->id);
+
+  if (G_UNLIKELY (GST_CLOCK_ENTRY_STATUS (entry) == GST_CLOCK_UNSCHEDULED)) {
+    status = GST_CLOCK_UNSCHEDULED;
+  } else {
+    GstClockTime requested = GST_CLOCK_ENTRY_TIME (entry);
+    GstClockTimeDiff diff;
+
+    g_assert (gst_test_clock_has_id (wait_ctx->test_clock, wait_ctx->id));
+
+    diff = GST_CLOCK_DIFF (requested, wait_ctx->reference);
+
+    if (diff > 0) {
+      status = GST_CLOCK_EARLY;
+    } else {
+      status = GST_CLOCK_OK;
+    }
+
+    g_atomic_int_set (&GST_CLOCK_ENTRY_STATUS (entry), status);
+  }
+
+  if (GST_CLOCK_ENTRY_TYPE (entry) == GST_CLOCK_ENTRY_SINGLE) {
+    GstClockClass *klass = GST_CLOCK_GET_CLASS (wait_ctx->test_clock);
+    GstClock *clock = GST_CLOCK (wait_ctx->test_clock);
+
+    klass->unschedule (clock, wait_ctx->id);
+    g_assert (!gst_test_clock_has_id (wait_ctx->test_clock, wait_ctx->id));
+  } else {
+    GST_CLOCK_ENTRY_TIME (entry) += GST_CLOCK_ENTRY_INTERVAL (entry);
+    g_assert (gst_test_clock_has_id (wait_ctx->test_clock, wait_ctx->id));
+  }
+
+  gst_clock_id_unref (wait_ctx->id);
+  gst_object_unref (wait_ctx->test_clock);
+  g_slice_free (GtuClockWaitContext, wait_ctx);
+
+  return status;
+}
+
+static gboolean
+gst_test_util_clock_wait_context_has_completed (GtuClockWaitContext * wait_ctx)
+{
+  GstClock *clock = GST_CLOCK (wait_ctx->test_clock);
+  GstClockEntry *entry = GST_CLOCK_ENTRY (wait_ctx->id);
+  GstClockTime requested = GST_CLOCK_ENTRY_TIME (entry);
+  GstClockTime now = gst_clock_get_time (clock);
+
+  return requested < now;
+}
+
+GST_START_TEST (test_object_flags)
+{
+  GstClock *clock = gst_test_clock_new ();
+  g_assert (GST_OBJECT_FLAG_IS_SET (clock, GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC));
+  g_assert (GST_OBJECT_FLAG_IS_SET (clock, GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC));
+  g_assert (GST_OBJECT_FLAG_IS_SET (clock,
+          GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC));
+  g_assert (GST_OBJECT_FLAG_IS_SET (clock,
+          GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC));
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_resolution_query)
+{
+  GstClock *clock = gst_test_clock_new ();
+  g_assert_cmpuint (gst_clock_get_resolution (clock), ==, 1);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_start_time)
+{
+  GstClock *clock;
+  guint64 start_time;
+
+  clock = gst_test_clock_new ();
+  g_assert_cmpuint (gst_clock_get_time (clock), ==, 0);
+  g_object_get (clock, "start-time", &start_time, NULL);
+  g_assert_cmpuint (start_time, ==, 0);
+  gst_object_unref (clock);
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  g_assert_cmpuint (gst_clock_get_time (clock), ==, GST_SECOND);
+  g_object_get (clock, "start-time", &start_time, NULL);
+  g_assert_cmpuint (start_time, ==, GST_SECOND);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_set_time)
+{
+  GstClock *clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  gst_test_clock_set_time (GST_TEST_CLOCK (clock), GST_SECOND);
+  g_assert_cmpuint (gst_clock_get_time (clock), ==, GST_SECOND);
+  gst_test_clock_set_time (GST_TEST_CLOCK (clock), GST_SECOND + 1);
+  g_assert_cmpuint (gst_clock_get_time (clock), ==, GST_SECOND + 1);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_advance_time)
+{
+  GstClock *clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), 0);
+  g_assert_cmpuint (gst_clock_get_time (clock), ==, GST_SECOND);
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), 42 * GST_MSECOND);
+  g_assert_cmpuint (gst_clock_get_time (clock), ==,
+      GST_SECOND + (42 * GST_MSECOND));
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_wait_synchronous_no_timeout)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GThread *worker_thread;
+  GstClockID pending_id;
+  GstClockID processed_id;
+  SyncClockWaitContext context;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND - 1);
+  context.clock_id = gst_clock_id_ref (clock_id);
+  context.jitter = 0;
+  worker_thread =
+      g_thread_new ("worker_thread",
+      test_wait_pending_single_shot_id_sync_worker, &context);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_SECOND - 1);
+  gst_clock_id_unref (pending_id);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_EARLY);
+  gst_clock_id_unref (processed_id);
+  g_thread_join (worker_thread);
+  g_assert_cmpuint (context.jitter, ==, 1);
+  gst_clock_id_unref (context.clock_id);
+  gst_clock_id_unref (clock_id);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND);
+  context.clock_id = gst_clock_id_ref (clock_id);
+  context.jitter = 0;
+  worker_thread =
+      g_thread_new ("worker_thread",
+      test_wait_pending_single_shot_id_sync_worker, &context);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id, GST_CLOCK_ENTRY_SINGLE, GST_SECOND);
+  gst_clock_id_unref (pending_id);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  g_thread_join (worker_thread);
+  g_assert_cmpuint (context.jitter, ==, 0);
+  gst_clock_id_unref (context.clock_id);
+  gst_clock_id_unref (clock_id);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND + 1);
+  context.clock_id = gst_clock_id_ref (clock_id);
+  context.jitter = 0;
+  worker_thread =
+      g_thread_new ("worker_thread",
+      test_wait_pending_single_shot_id_sync_worker, &context);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_SECOND + 1);
+  gst_clock_id_unref (pending_id);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  g_assert (processed_id == NULL);
+  gst_test_clock_advance_time (test_clock, 1);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  g_thread_join (worker_thread);
+  g_assert_cmpuint (context.jitter, ==, -1);
+  gst_clock_id_unref (context.clock_id);
+  gst_clock_id_unref (clock_id);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_wait_pending_single_shot_id)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GstClockID processed_id;
+  GThread *worker_thread;
+  GstClockID pending_id;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND);
+  gst_clock_id_wait_async (clock_id, test_async_wait_cb, NULL, NULL);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id, GST_CLOCK_ENTRY_SINGLE, GST_SECOND);
+  gst_clock_id_unref (pending_id);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  gst_clock_id_unref (clock_id);
+
+  clock_id = gst_clock_new_single_shot_id (clock, 2 * GST_SECOND);
+  worker_thread =
+      g_thread_new ("worker_thread",
+      test_wait_pending_single_shot_id_async_worker, clock_id);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      2 * GST_SECOND);
+  gst_clock_id_unref (pending_id);
+  g_thread_join (worker_thread);
+  gst_clock_id_unref (clock_id);
+
+  clock_id = gst_clock_new_single_shot_id (clock, 3 * GST_SECOND);
+  worker_thread =
+      g_thread_new ("worker_thread",
+      test_wait_pending_single_shot_id_async_worker, clock_id);
+  gst_test_clock_wait_for_next_pending_id (test_clock, NULL);
+  g_thread_join (worker_thread);
+  gst_clock_id_unref (clock_id);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_wait_pending_periodic_id)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GstClockID processed_id;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+  clock_id = gst_clock_new_periodic_id (clock, GST_SECOND, GST_MSECOND);
+
+  {
+    GThread *waiter_thread;
+
+    waiter_thread =
+        g_thread_new ("waiter_thread",
+        test_wait_pending_periodic_id_waiter_thread, clock_id);
+
+    gst_test_clock_wait_for_next_pending_id (test_clock, NULL);
+    gst_test_clock_set_time (test_clock, GST_SECOND);
+    processed_id = gst_test_clock_process_next_clock_id (test_clock);
+    assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_PERIODIC,
+        GST_CLOCK_OK);
+    gst_clock_id_unref (processed_id);
+
+    g_thread_join (waiter_thread);
+  }
+
+  {
+    guint i;
+    GThread *waiter_thread;
+
+    for (i = 0; i < 3; i++) {
+      g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
+      g_usleep (G_USEC_PER_SEC / 10 / 10);
+    }
+
+    waiter_thread =
+        g_thread_new ("waiter_thread",
+        test_wait_pending_periodic_id_waiter_thread, clock_id);
+
+    gst_test_clock_wait_for_next_pending_id (test_clock, NULL);
+    gst_clock_id_unschedule (clock_id);
+
+    g_thread_join (waiter_thread);
+  }
+
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_past)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GstClockTimeDiff jitter;
+  GtuClockWaitContext *wait_ctx;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND - 1);
+  wait_ctx =
+      gst_test_util_wait_for_clock_id_begin (test_clock, clock_id, &jitter);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx) == GST_CLOCK_EARLY);
+  g_assert_cmpint (jitter, ==, 1);
+  gst_clock_id_unref (clock_id);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_present)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GstClockTimeDiff jitter;
+  GtuClockWaitContext *wait_ctx;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND);
+  wait_ctx =
+      gst_test_util_wait_for_clock_id_begin (test_clock, clock_id, &jitter);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx) == GST_CLOCK_OK);
+  g_assert_cmpint (jitter, ==, 0);
+  gst_clock_id_unref (clock_id);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_future)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GstClockTimeDiff jitter;
+  GtuClockWaitContext *wait_ctx;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_single_shot_id (clock, 2 * GST_SECOND);
+  wait_ctx =
+      gst_test_util_wait_for_clock_id_begin (test_clock, clock_id, &jitter);
+  gst_test_clock_advance_time (test_clock, GST_SECOND);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx) == GST_CLOCK_OK);
+  g_assert_cmpint (jitter, ==, -GST_SECOND);
+  gst_clock_id_unref (clock_id);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_unschedule)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  GtuClockWaitContext *wait_ctx;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND);
+  gst_clock_id_unschedule (clock_id);
+  gst_clock_id_unref (clock_id);
+
+  clock_id = gst_clock_new_single_shot_id (clock, 2 * GST_SECOND);
+  wait_ctx = gst_test_util_wait_for_clock_id_begin (test_clock, clock_id, NULL);
+  gst_clock_id_unschedule (clock_id);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx)
+      == GST_CLOCK_UNSCHEDULED);
+  gst_clock_id_unref (clock_id);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_ordering)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id_a, clock_id_b;
+  GtuClockWaitContext *wait_ctx_a, *wait_ctx_b;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id_a = gst_clock_new_single_shot_id (clock, 3 * GST_SECOND);
+  wait_ctx_a =
+      gst_test_util_wait_for_clock_id_begin (test_clock, clock_id_a, NULL);
+
+  gst_test_clock_advance_time (test_clock, GST_SECOND);
+
+  clock_id_b = gst_clock_new_single_shot_id (clock, 2 * GST_SECOND);
+  wait_ctx_b =
+      gst_test_util_wait_for_clock_id_begin (test_clock, clock_id_b, NULL);
+
+  gst_test_clock_advance_time (test_clock, GST_SECOND);
+
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx_b) == GST_CLOCK_OK);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx_a) == GST_CLOCK_OK);
+
+  gst_clock_id_unref (clock_id_b);
+  gst_clock_id_unref (clock_id_a);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_ordering_parallel)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id_a, clock_id_b;
+  GtuClockWaitContext *wait_ctx_a, *wait_ctx_b;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id_a = gst_clock_new_single_shot_id (clock, 3 * GST_SECOND);
+  clock_id_b = gst_clock_new_single_shot_id (clock, 2 * GST_SECOND);
+  wait_ctx_a = gst_test_util_wait_for_clock_id_begin (test_clock, clock_id_a,
+      NULL);
+  wait_ctx_b = gst_test_util_wait_for_clock_id_begin (test_clock, clock_id_b,
+      NULL);
+
+  g_assert_cmpuint (gst_test_clock_get_next_entry_time (test_clock), ==,
+      2 * GST_SECOND);
+  gst_test_clock_advance_time (test_clock, GST_SECOND);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx_b) == GST_CLOCK_OK);
+
+  g_assert_cmpuint (gst_test_clock_get_next_entry_time (test_clock), ==,
+      3 * GST_SECOND);
+  gst_test_clock_advance_time (test_clock, GST_SECOND);
+  g_assert (gst_test_util_wait_for_clock_id_end (wait_ctx_a) == GST_CLOCK_OK);
+
+  gst_clock_id_unref (clock_id_b);
+  gst_clock_id_unref (clock_id_a);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_sync_simultaneous_no_timeout)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id_a;
+  GstClockID clock_id_b;
+  SyncClockWaitContext context_a;
+  SyncClockWaitContext context_b;
+  GThread *worker_thread_a;
+  GThread *worker_thread_b;
+  GstClockID processed_id;
+  GstClockID pending_id;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id_a = gst_clock_new_single_shot_id (clock, 5 * GST_SECOND);
+  clock_id_b = gst_clock_new_single_shot_id (clock, 6 * GST_SECOND);
+
+  context_a.clock_id = gst_clock_id_ref (clock_id_a);
+  context_a.jitter = 0;
+  context_b.clock_id = gst_clock_id_ref (clock_id_b);
+  context_b.jitter = 0;
+
+  gst_test_clock_wait_for_pending_id_count (test_clock, 0);
+
+  worker_thread_b =
+      g_thread_new ("worker_thread_b",
+      test_wait_pending_single_shot_id_sync_worker, &context_b);
+
+  gst_test_clock_wait_for_pending_id_count (test_clock, 1);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id_b, GST_CLOCK_ENTRY_SINGLE,
+      6 * GST_SECOND);
+  gst_clock_id_unref (pending_id);
+
+  worker_thread_a =
+      g_thread_new ("worker_thread_a",
+      test_wait_pending_single_shot_id_sync_worker, &context_a);
+
+  gst_test_clock_wait_for_pending_id_count (test_clock, 2);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id_a, GST_CLOCK_ENTRY_SINGLE,
+      5 * GST_SECOND);
+  gst_clock_id_unref (pending_id);
+
+  g_assert_cmpuint (gst_test_clock_get_next_entry_time (test_clock), ==,
+      5 * GST_SECOND);
+  gst_test_clock_advance_time (test_clock, 5 * GST_SECOND);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  assert_processed_id (processed_id, clock_id_a, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+
+  gst_test_clock_wait_for_pending_id_count (test_clock, 1);
+  gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+  assert_pending_id (pending_id, clock_id_b, GST_CLOCK_ENTRY_SINGLE,
+      6 * GST_SECOND);
+  gst_clock_id_unref (pending_id);
+
+  g_assert_cmpuint (gst_test_clock_get_next_entry_time (test_clock), ==,
+      6 * GST_SECOND);
+  gst_test_clock_advance_time (test_clock, 6 * GST_SECOND);
+  processed_id = gst_test_clock_process_next_clock_id (test_clock);
+  assert_processed_id (processed_id, clock_id_b, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+
+  gst_test_clock_wait_for_pending_id_count (test_clock, 0);
+
+  g_thread_join (worker_thread_a);
+  g_thread_join (worker_thread_b);
+
+  g_assert_cmpuint (context_a.jitter, ==, -4 * GST_SECOND);
+  g_assert_cmpuint (context_b.jitter, ==, -5 * GST_SECOND);
+
+  gst_clock_id_unref (context_a.clock_id);
+  gst_clock_id_unref (context_b.clock_id);
+
+  gst_clock_id_unref (clock_id_a);
+  gst_clock_id_unref (clock_id_b);
+
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_async_past)
+{
+  GstClock *clock;
+  GstClockID clock_id;
+  GstClockID processed_id;
+  gboolean wait_complete = FALSE;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND - 1);
+  g_assert (gst_clock_id_wait_async (clock_id, test_async_wait_cb,
+          &wait_complete, NULL) == GST_CLOCK_OK);
+  g_assert (!wait_complete);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (wait_complete);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_EARLY);
+  gst_clock_id_unref (processed_id);
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_async_present)
+{
+  GstClock *clock;
+  GstClockID clock_id;
+  GstClockID processed_id;
+  gboolean wait_complete = FALSE;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  clock_id = gst_clock_new_single_shot_id (clock, GST_SECOND);
+  g_assert (gst_clock_id_wait_async (clock_id, test_async_wait_cb,
+          &wait_complete, NULL) == GST_CLOCK_OK);
+  g_assert (!wait_complete);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (wait_complete);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_async_future)
+{
+  GstClock *clock;
+  GstClockID clock_id;
+  GstClockID processed_id;
+  gboolean wait_complete = FALSE;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+  clock_id = gst_clock_new_single_shot_id (clock, 2 * GST_SECOND);
+  g_assert (gst_clock_id_wait_async (clock_id, test_async_wait_cb,
+          &wait_complete, NULL) == GST_CLOCK_OK);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (processed_id == NULL);
+  g_assert (!wait_complete);
+  g_assert (GST_CLOCK_ENTRY_STATUS (GST_CLOCK_ENTRY (clock_id))
+      == GST_CLOCK_OK);
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), GST_SECOND - 1);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (processed_id == NULL);
+  g_assert (!wait_complete);
+  g_assert (GST_CLOCK_ENTRY_STATUS (GST_CLOCK_ENTRY (clock_id))
+      == GST_CLOCK_OK);
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), 1);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (wait_complete);
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_SINGLE,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  g_assert (GST_CLOCK_ENTRY_STATUS (GST_CLOCK_ENTRY (clock_id))
+      == GST_CLOCK_OK);
+
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_single_shot_async_unschedule)
+{
+  GstClock *clock;
+  GstClockID clock_id;
+  gboolean wait_complete = FALSE;
+
+  clock = gst_test_clock_new_with_start_time (GST_SECOND);
+
+  clock_id = gst_clock_new_single_shot_id (clock, 3 * GST_SECOND);
+  g_assert (gst_clock_id_wait_async (clock_id, test_async_wait_cb,
+          &wait_complete, NULL) == GST_CLOCK_OK);
+
+  gst_clock_id_unschedule (clock_id);
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), 2 * GST_SECOND);
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock))
+      == NULL);
+  g_assert (!wait_complete);
+
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_periodic_sync)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  guint i;
+  const GstClockTime interval = 4 * GST_MSECOND;
+
+  clock = gst_test_clock_new ();
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_periodic_id (clock, GST_SECOND, interval);
+
+  for (i = 0; i < 3; i++) {
+    GtuClockWaitContext *wait_ctx;
+    GstClockID pending_id;
+    guint j;
+
+    wait_ctx =
+        gst_test_util_wait_for_clock_id_begin (test_clock, clock_id, NULL);
+
+    gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+    assert_pending_id (pending_id, clock_id, GST_CLOCK_ENTRY_PERIODIC,
+        GST_SECOND + (i * interval));
+    gst_clock_id_unref (pending_id);
+
+    for (j = 0; j < 10; j++) {
+      g_usleep (G_USEC_PER_SEC / 10 / 10);
+      g_assert (!gst_test_util_clock_wait_context_has_completed (wait_ctx));
+    }
+
+    if (i == 0)
+      gst_test_clock_advance_time (test_clock, GST_SECOND);
+    else
+      gst_test_clock_advance_time (test_clock, interval);
+
+    gst_test_util_wait_for_clock_id_end (wait_ctx);
+  }
+
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_periodic_async)
+{
+  GstClock *clock;
+  GstClockID clock_id;
+  GstClockID processed_id;
+  gboolean wait_complete = FALSE;
+  const GstClockTime interval = 4 * GST_MSECOND;
+
+  clock = gst_test_clock_new ();
+  clock_id = gst_clock_new_periodic_id (clock, gst_clock_get_time (clock),
+      interval);
+  g_assert (gst_clock_id_wait_async (clock_id, test_async_wait_cb,
+          &wait_complete, NULL) == GST_CLOCK_OK);
+
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_PERIODIC,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+
+  g_assert (wait_complete);
+  wait_complete = FALSE;
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), interval - 1);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (processed_id == NULL);
+  g_assert (!wait_complete);
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), 1);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_PERIODIC,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  g_assert (wait_complete);
+  wait_complete = FALSE;
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), interval - 1);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  g_assert (processed_id == NULL);
+  g_assert (!wait_complete);
+
+  gst_test_clock_advance_time (GST_TEST_CLOCK (clock), 1);
+  processed_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (clock));
+  assert_processed_id (processed_id, clock_id, GST_CLOCK_ENTRY_PERIODIC,
+      GST_CLOCK_OK);
+  gst_clock_id_unref (processed_id);
+  g_assert (wait_complete);
+  wait_complete = FALSE;
+
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_periodic_uniqueness)
+{
+  GstClock *clock;
+  GstTestClock *test_clock;
+  GstClockID clock_id;
+  guint i;
+  const GstClockTime interval = 4 * GST_MSECOND;
+
+  clock = gst_test_clock_new ();
+  test_clock = GST_TEST_CLOCK (clock);
+
+  clock_id = gst_clock_new_periodic_id (clock, 0, interval);
+
+  for (i = 0; i < 3; i++) {
+    GtuClockWaitContext *wait_ctx;
+    guint j;
+
+    wait_ctx =
+        gst_test_util_wait_for_clock_id_begin (test_clock, clock_id, NULL);
+
+    for (j = 0; j < 10; j++) {
+      g_usleep (G_USEC_PER_SEC / 10 / 10);
+      g_assert_cmpuint (gst_test_clock_peek_id_count (test_clock), ==, 1);
+    }
+
+    gst_test_clock_advance_time (test_clock, interval);
+    gst_test_util_wait_for_clock_id_end (wait_ctx);
+  }
+
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
+static Suite *
+gst_test_clock_suite (void)
+{
+  Suite *s = suite_create ("GstTestClock");
+  TCase *tc_chain = tcase_create ("testclock");
+
+  suite_add_tcase (s, tc_chain);
+
+  tcase_add_test (tc_chain, test_object_flags);
+  tcase_add_test (tc_chain, test_resolution_query);
+  tcase_add_test (tc_chain, test_start_time);
+  tcase_add_test (tc_chain, test_set_time);
+  tcase_add_test (tc_chain, test_advance_time);
+  tcase_add_test (tc_chain, test_wait_synchronous_no_timeout);
+  tcase_add_test (tc_chain, test_wait_pending_single_shot_id);
+  tcase_add_test (tc_chain, test_wait_pending_periodic_id);
+  tcase_add_test (tc_chain, test_single_shot_sync_simultaneous_no_timeout);
+  tcase_add_test (tc_chain, test_single_shot_sync_past);
+  tcase_add_test (tc_chain, test_single_shot_sync_present);
+  tcase_add_test (tc_chain, test_single_shot_sync_future);
+  tcase_add_test (tc_chain, test_single_shot_sync_unschedule);
+  tcase_add_test (tc_chain, test_single_shot_sync_ordering);
+  tcase_add_test (tc_chain, test_single_shot_sync_ordering_parallel);
+  tcase_add_test (tc_chain, test_single_shot_async_past);
+  tcase_add_test (tc_chain, test_single_shot_async_present);
+  tcase_add_test (tc_chain, test_single_shot_async_future);
+  tcase_add_test (tc_chain, test_single_shot_async_unschedule);
+  tcase_add_test (tc_chain, test_periodic_sync);
+  tcase_add_test (tc_chain, test_periodic_async);
+  tcase_add_test (tc_chain, test_periodic_uniqueness);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_test_clock);
diff --git a/tests/check/libs/libsabi.c b/tests/check/libs/libsabi.c
index e24f4fb..42ca40f 100644
--- a/tests/check/libs/libsabi.c
+++ b/tests/check/libs/libsabi.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <config.h>
@@ -70,7 +70,7 @@
 #else
 #ifdef HAVE_CPU_ARM
 #include "struct_arm.h"
-#define HAVE_ABI_SIZES FALSE
+#define HAVE_ABI_SIZES TRUE
 #else
 /* in case someone wants to generate a new arch */
 #include "struct_i386.h"
diff --git a/tests/check/libs/queuearray.c b/tests/check/libs/queuearray.c
index b8fac2b..0141a11 100644
--- a/tests/check/libs/queuearray.c
+++ b/tests/check/libs/queuearray.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -26,8 +26,7 @@
 
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
-#include "../../../plugins/elements/gstqueuearray.h"
-#include "../../../plugins/elements/gstqueuearray.c"
+#include <gst/base/gstqueuearray.h>
 
 /* Simplest test
  * Initial size : 10
@@ -45,7 +44,7 @@
   for (i = 0; i < 5; i++)
     gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
 
-  fail_unless_equals_int (array->length, 5);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 5);
 
   /* pull 5 values out */
   for (i = 0; i < 5; i++) {
@@ -53,7 +52,7 @@
         i);
   }
 
-  fail_unless_equals_int (array->length, 0);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 0);
 
   gst_queue_array_free (array);
 }
@@ -67,31 +66,18 @@
 
   /* Create an array of initial size 10 */
   array = gst_queue_array_new (10);
-  fail_unless_equals_int (array->size, 10);
 
   /* push 10 values in */
   for (i = 0; i < 10; i++)
     gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
 
-  fail_unless_equals_int (array->length, 10);
-  /* It did not grow beyond initial size */
-  fail_unless_equals_int (array->size, 10);
-  /* The head is still at the beginning */
-  fail_unless_equals_int (array->head, 0);
-  /* The tail wrapped around to the head */
-  fail_unless_equals_int (array->tail, 0);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 10);
 
 
   /* If we add one value, it will grow */
   gst_queue_array_push_tail (array, GINT_TO_POINTER (10));
 
-  fail_unless_equals_int (array->length, 11);
-  /* It did grow beyond initial size */
-  fail_unless_equals_int (array->size, 15);
-  /* The head remains the same */
-  fail_unless_equals_int (array->head, 0);
-  /* The tail was brought to position 11 */
-  fail_unless_equals_int (array->tail, 11);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 11);
 
   /* pull the 11 values out */
   for (i = 0; i < 11; i++) {
@@ -99,7 +85,7 @@
         i);
   }
 
-  fail_unless_equals_int (array->length, 0);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 0);
   gst_queue_array_free (array);
 }
 
@@ -112,23 +98,20 @@
 
   /* Create an array of initial size 10 */
   array = gst_queue_array_new (10);
-  fail_unless_equals_int (array->size, 10);
 
   /* push 11 values in */
   for (i = 0; i < 11; i++)
     gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
 
   /* With 11 values, it should have grown once (15) */
-  fail_unless_equals_int (array->length, 11);
-  fail_unless_equals_int (array->size, 15);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 11);
 
   for (i = 11; i < 20; i++)
     gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
 
   /* With 20 total values, it should have grown another time (3 * 15) / 2 = 22) */
-  fail_unless_equals_int (array->length, 20);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 20);
   /* It did grow beyond initial size */
-  fail_unless_equals_int (array->size, 22);
 
   /* pull the 20 values out */
   for (i = 0; i < 20; i++) {
@@ -136,7 +119,7 @@
         i);
   }
 
-  fail_unless_equals_int (array->length, 0);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 0);
   gst_queue_array_free (array);
 }
 
@@ -149,7 +132,6 @@
 
   /* Create an array of initial size 10 */
   array = gst_queue_array_new (10);
-  fail_unless_equals_int (array->size, 10);
 
   /* push/pull 5 values to end up in the middle */
   for (i = 0; i < 5; i++) {
@@ -162,15 +144,11 @@
   for (i = 0; i < 10; i++)
     gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
 
-  fail_unless_equals_int (array->length, 10);
-  /* It did not grow beyond initial size */
-  fail_unless_equals_int (array->size, 10);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 10);
 
   /* If we add one value, it will grow */
   gst_queue_array_push_tail (array, GINT_TO_POINTER (10));
-  fail_unless_equals_int (array->length, 11);
-  /* It did grow beyond initial size */
-  fail_unless_equals_int (array->size, 15);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 11);
 
   /* pull the 11 values out */
   for (i = 0; i < 11; i++) {
@@ -178,7 +156,7 @@
         i);
   }
 
-  fail_unless_equals_int (array->length, 0);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 0);
   gst_queue_array_free (array);
 }
 
@@ -191,7 +169,6 @@
 
   /* Create an array of initial size 10 */
   array = gst_queue_array_new (10);
-  fail_unless_equals_int (array->size, 10);
 
   /* push/pull 9 values to end up at the last position */
   for (i = 0; i < 9; i++) {
@@ -204,15 +181,11 @@
   for (i = 0; i < 10; i++)
     gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
 
-  fail_unless_equals_int (array->length, 10);
-  /* It did not grow beyond initial size */
-  fail_unless_equals_int (array->size, 10);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 10);
 
   /* If we add one value, it will grow */
   gst_queue_array_push_tail (array, GINT_TO_POINTER (10));
-  fail_unless_equals_int (array->length, 11);
-  /* It did grow beyond initial size */
-  fail_unless_equals_int (array->size, 15);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 11);
 
   /* pull the 11 values out */
   for (i = 0; i < 11; i++) {
@@ -220,7 +193,7 @@
         i);
   }
 
-  fail_unless_equals_int (array->length, 0);
+  fail_unless_equals_int (gst_queue_array_get_length (array), 0);
   gst_queue_array_free (array);
 }
 
@@ -232,144 +205,6 @@
   return (int) ((guintptr) a - (guintptr) b);
 }
 
-GST_START_TEST (test_array_find)
-{
-  GstQueueArray *array;
-  guint i;
-  guint index;
-
-  guint random_initial = g_random_int_range (10, 100);
-  guint value_to_find = 5;
-
-  /* Create an array of initial size 10 */
-  array = gst_queue_array_new (10);
-  fail_unless_equals_int (array->size, 10);
-
-  while (random_initial--) {
-    gst_queue_array_push_tail (array, GINT_TO_POINTER (g_random_int ()));
-    gst_queue_array_pop_head (array);
-  }
-
-  /* push 10 values in */
-  for (i = 0; i < 10; i++)
-    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
-
-  fail_unless_equals_int (array->length, 10);
-  fail_unless_equals_int (array->size, 10);
-
-  index =
-      gst_queue_array_find (array, compare_pointer_value,
-      GINT_TO_POINTER (value_to_find));
-  fail_if (index == -1);
-  fail_unless_equals_int (value_to_find, GPOINTER_TO_INT (array->array[index]));
-
-  /* push 10 values in */
-  for (i = 0; i < 10; i++)
-    gst_queue_array_pop_head (array);
-
-  index =
-      gst_queue_array_find (array, compare_pointer_value,
-      GINT_TO_POINTER (value_to_find));
-  fail_unless (index == -1);
-
-  gst_queue_array_free (array);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_array_drop)
-{
-  GstQueueArray *array;
-  guint i;
-  guint index;
-  guint index_2;
-
-  /* Create an array of initial size 10 */
-  array = gst_queue_array_new (10);
-  fail_unless_equals_int (array->size, 10);
-
-  for (i = 0; i < 5; i++)
-    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
-
-  fail_unless (array->length == 5);
-
-  /* Naive case remove head */
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (0));
-  fail_if (index == -1);
-  gst_queue_array_drop_element (array, index);
-  fail_unless (array->length == 4);
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (0));
-  fail_unless (index == -1);
-
-  /* Naive case remove tail */
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (4));
-  fail_if (index == -1);
-  gst_queue_array_drop_element (array, index);
-  fail_unless (array->length == 3);
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (4));
-  fail_unless (index == -1);
-
-  /* Remove in middle of non-wrapped */
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (2));
-  index_2 =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (3));
-  fail_if (index == -1);
-  fail_if (index_2 == -1);
-  gst_queue_array_drop_element (array, index);
-  fail_unless (array->length == 2);
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (2));
-  fail_unless (index == -1);
-  index_2 =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (3));
-  fail_if (index_2 == -1);
-
-  /* Remove the rest */
-  while (array->length)
-    gst_queue_array_pop_head (array);
-
-  /* Add until wrapping */
-  for (i = 0; i < 9; i++)
-    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
-
-  fail_unless (array->head > array->tail);
-
-  /* Remove from between head and array end */
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (1));
-  fail_if (index == -1);
-  fail_unless (index > array->head);
-  index_2 = array->head;
-  gst_queue_array_drop_element (array, index);
-  fail_unless (array->length == 8);
-  fail_if (array->head == index_2);
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (1));
-  fail_unless (index == -1);
-
-  /* Remove from between head and array end */
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (8));
-  fail_if (index == -1);
-  fail_unless (index < array->tail);
-  index_2 = array->tail;
-  gst_queue_array_drop_element (array, index);
-  fail_unless (array->length == 7);
-  fail_if (array->tail == index_2);
-  index =
-      gst_queue_array_find (array, compare_pointer_value, GINT_TO_POINTER (8));
-  fail_unless (index == -1);
-
-  gst_queue_array_free (array);
-}
-
-GST_END_TEST;
-
 GST_START_TEST (test_array_drop2)
 {
 #define NUM_QA_ELEMENTS 674
@@ -390,21 +225,24 @@
 
   for (j = 0, count = 0; j < NUM_QA_ELEMENTS; j++)
     count += in_array[j] ? 1 : 0;
-  fail_unless_equals_int (array->length, count);
+  fail_unless_equals_int (gst_queue_array_get_length (array), count);
 
-  while (array->length > 0) {
+  while (gst_queue_array_get_length (array) > 0) {
     for (i = 0; i < NUM_QA_ELEMENTS; i++) {
+      gpointer dropped;
+
       if (g_random_boolean () && g_random_boolean () && in_array[i]) {
         idx = gst_queue_array_find (array, compare_pointer_value,
             GUINT_TO_POINTER (i));
-        gst_queue_array_drop_element (array, idx);
+        dropped = gst_queue_array_drop_element (array, idx);
+        fail_unless_equals_int (i, GPOINTER_TO_INT (dropped));
         in_array[i] = FALSE;
       }
     }
 
     for (j = 0, count = 0; j < NUM_QA_ELEMENTS; j++)
       count += in_array[j] ? 1 : 0;
-    fail_unless_equals_int (array->length, count);
+    fail_unless_equals_int (gst_queue_array_get_length (array), count);
   }
 
   gst_queue_array_free (array);
@@ -425,8 +263,6 @@
   tcase_add_test (tc_chain, test_array_grow_multiple);
   tcase_add_test (tc_chain, test_array_grow_middle);
   tcase_add_test (tc_chain, test_array_grow_end);
-  tcase_add_test (tc_chain, test_array_find);
-  tcase_add_test (tc_chain, test_array_drop);
   tcase_add_test (tc_chain, test_array_drop2);
 
   return s;
diff --git a/tests/check/libs/struct_arm.h b/tests/check/libs/struct_arm.h
index 484298e..8c99bf2 100644
--- a/tests/check/libs/struct_arm.h
+++ b/tests/check/libs/struct_arm.h
@@ -1,39 +1,39 @@
 
 GstCheckABIStruct list[] = {
-  {"GstBaseParseClass", sizeof (GstBaseParseClass), 728},
-  {"GstBaseParse", sizeof (GstBaseParse), 576},
-  {"GstBaseSinkClass", sizeof (GstBaseSinkClass), 792},
-  {"GstBaseSink", sizeof (GstBaseSink), 664},
-  {"GstBaseSrcClass", sizeof (GstBaseSrcClass), 800},
-  {"GstBaseSrc", sizeof (GstBaseSrc), 648},
-  {"GstBaseTransformClass", sizeof (GstBaseTransformClass), 816},
-  {"GstBaseTransform", sizeof (GstBaseTransform), 576},
-  {"GstBitReader", sizeof (GstBitReader), 56},
-  {"GstByteReader", sizeof (GstByteReader), 48},
-  {"GstByteWriter", sizeof (GstByteWriter), 96},
-  {"GstCollectData", sizeof (GstCollectData), 200},
-  {"GstCollectPadsClass", sizeof (GstCollectPadsClass), 216},
-  {"GstCollectPads", sizeof (GstCollectPads), 152},
-  {"GstARGBControlBindingClass", sizeof (GstARGBControlBindingClass), 280},
-  {"GstARGBControlBinding", sizeof (GstARGBControlBinding), 248},
-  {"GstDirectControlBindingClass", sizeof (GstDirectControlBindingClass), 280},
-  {"GstDirectControlBinding", sizeof (GstDirectControlBinding), 248},
-  {"GstInterpolationControlSourceClass", sizeof (GstInterpolationControlSourceClass), 280},
-  {"GstInterpolationControlSource", sizeof (GstInterpolationControlSource), 240},
-  {"GstLFOControlSourceClass", sizeof (GstLFOControlSourceClass), 248},
-  {"GstLFOControlSource", sizeof (GstLFOControlSource), 184},
+  {"GstBaseParseClass", sizeof (GstBaseParseClass), 368},
+  {"GstBaseParse", sizeof (GstBaseParse), 392},
+  {"GstBaseSinkClass", sizeof (GstBaseSinkClass), 400},
+  {"GstBaseSink", sizeof (GstBaseSink), 464},
+  {"GstBaseSrcClass", sizeof (GstBaseSrcClass), 404},
+  {"GstBaseSrc", sizeof (GstBaseSrc), 448},
+  {"GstBaseTransformClass", sizeof (GstBaseTransformClass), 416},
+  {"GstBaseTransform", sizeof (GstBaseTransform), 392},
+  {"GstBitReader", sizeof (GstBitReader), 32},
+  {"GstByteReader", sizeof (GstByteReader), 28},
+  {"GstByteWriter", sizeof (GstByteWriter), 56},
+  {"GstCollectData", sizeof (GstCollectData), 144},
+  {"GstCollectPadsClass", sizeof (GstCollectPadsClass), 108},
+  {"GstCollectPads", sizeof (GstCollectPads), 104},
+  {"GstARGBControlBindingClass", sizeof (GstARGBControlBindingClass), 140},
+  {"GstARGBControlBinding", sizeof (GstARGBControlBinding), 160},
+  {"GstDirectControlBindingClass", sizeof (GstDirectControlBindingClass), 140},
+  {"GstDirectControlBinding", sizeof (GstDirectControlBinding), 168},
+  {"GstInterpolationControlSourceClass", sizeof (GstInterpolationControlSourceClass), 140},
+  {"GstInterpolationControlSource", sizeof (GstInterpolationControlSource), 152},
+  {"GstLFOControlSourceClass", sizeof (GstLFOControlSourceClass), 124},
+  {"GstLFOControlSource", sizeof (GstLFOControlSource), 120},
   {"GstControlPoint", sizeof (GstControlPoint), 32},
-  {"GstTimedValueControlSourceClass", sizeof (GstTimedValueControlSourceClass), 248},
-  {"GstTimedValueControlSource", sizeof (GstTimedValueControlSource), 200},
-  {"GstTriggerControlSourceClass", sizeof (GstTriggerControlSourceClass), 280},
-  {"GstTriggerControlSource", sizeof (GstTriggerControlSource), 240},
-  {"GstNetClientClockClass", sizeof (GstNetClientClockClass), 328},
-  {"GstNetClientClock", sizeof (GstNetClientClock), 208},
+  {"GstTimedValueControlSourceClass", sizeof (GstTimedValueControlSourceClass), 124},
+  {"GstTimedValueControlSource", sizeof (GstTimedValueControlSource), 128},
+  {"GstTriggerControlSourceClass", sizeof (GstTriggerControlSourceClass), 140},
+  {"GstTriggerControlSource", sizeof (GstTriggerControlSource), 152},
+  {"GstNetClientClockClass", sizeof (GstNetClientClockClass), 164},
+  {"GstNetClientClock", sizeof (GstNetClientClock), 136},
   {"GstNetTimePacket", sizeof (GstNetTimePacket), 16},
-  {"GstNetTimeProviderClass", sizeof (GstNetTimeProviderClass), 216},
-  {"GstNetTimeProvider", sizeof (GstNetTimeProvider), 128},
-  {"GstPushSrcClass", sizeof (GstPushSrcClass), 856},
-  {"GstPushSrc", sizeof (GstPushSrc), 680},
+  {"GstNetTimeProviderClass", sizeof (GstNetTimeProviderClass), 108},
+  {"GstNetTimeProvider", sizeof (GstNetTimeProvider), 88},
+  {"GstPushSrcClass", sizeof (GstPushSrcClass), 432},
+  {"GstPushSrc", sizeof (GstPushSrc), 464},
   {"GstTimedValue", sizeof (GstTimedValue), 16},
   {NULL, 0, 0}
 };
diff --git a/tests/check/libs/test_transform.c b/tests/check/libs/test_transform.c
index 0d10d02..403f701 100644
--- a/tests/check/libs/test_transform.c
+++ b/tests/check/libs/test_transform.c
@@ -183,6 +183,8 @@
   gst_element_set_state (res->trans, GST_STATE_PAUSED);
   gst_pad_set_active (res->srcpad, TRUE);
 
+  gst_pad_push_event (res->srcpad, gst_event_new_stream_start ("test"));
+
   return res;
 }
 
@@ -233,3 +235,19 @@
   }
   return ret;
 }
+
+static gboolean
+gst_test_trans_setcaps (TestTransData * data, GstCaps * caps)
+{
+  return gst_pad_set_caps (data->srcpad, caps);
+}
+
+static gboolean
+gst_test_trans_push_segment (TestTransData * data)
+{
+  GstSegment segment;
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  return gst_pad_push_event (data->srcpad, gst_event_new_segment (&segment));
+}
diff --git a/tests/check/libs/transform1.c b/tests/check/libs/transform1.c
index 8a04a45..f8f32e2 100644
--- a/tests/check/libs/transform1.c
+++ b/tests/check/libs/transform1.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -29,25 +29,6 @@
 
 #include "test_transform.c"
 
-static gboolean buffer_alloc_pt1_called;
-
-#if 0
-static GstFlowReturn
-buffer_alloc_pt1 (GstPad * pad, guint64 offset, guint size, GstCaps * caps,
-    GstBuffer ** buf)
-{
-  GST_DEBUG_OBJECT (pad, "buffer_alloc called %" G_GUINT64_FORMAT ", %u, %"
-      GST_PTR_FORMAT, offset, size, caps);
-
-  buffer_alloc_pt1_called = TRUE;
-
-  *buf = gst_buffer_new_and_alloc (size);
-  gst_buffer_set_caps (*buf, caps);
-
-  return GST_FLOW_OK;
-}
-#endif
-
 static gboolean set_caps_pt1_called;
 
 static gboolean
@@ -67,78 +48,52 @@
   TestTransData *trans;
   GstBuffer *buffer;
   GstFlowReturn res;
-  //GstCaps *caps;
+  GstCaps *caps;
 
   klass_set_caps = set_caps_pt1;
   trans = gst_test_trans_new ();
 
+  gst_test_trans_push_segment (trans);
+
   GST_DEBUG_OBJECT (trans, "buffer without caps, size 20");
 
   buffer = gst_buffer_new_and_alloc (20);
 
-  buffer_alloc_pt1_called = FALSE;
   set_caps_pt1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
-  /* FIXME, passthough without pad-alloc, do pad-alloc on the srcpad */
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
   fail_unless (set_caps_pt1_called == FALSE);
 
   buffer = gst_test_trans_pop (trans);
   fail_unless (buffer != NULL);
   fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  /* caps should not have been set */
-  fail_unless (GST_BUFFER_CAPS (buffer) == NULL);
-#endif
 
   gst_buffer_unref (buffer);
 
   GST_DEBUG_OBJECT (trans, "buffer without caps, size 10");
 
   buffer = gst_buffer_new_and_alloc (10);
-  buffer_alloc_pt1_called = FALSE;
   set_caps_pt1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
-  /* FIXME, passthough without pad-alloc, do pad-alloc on the srcpad */
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
   fail_unless (set_caps_pt1_called == FALSE);
 
   buffer = gst_test_trans_pop (trans);
   fail_unless (buffer != NULL);
   fail_unless (gst_buffer_get_size (buffer) == 10);
-#if 0
-  /* caps should not have been set */
-  fail_unless (GST_BUFFER_CAPS (buffer) == NULL);
-#endif
 
   gst_buffer_unref (buffer);
 
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 10");
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_start ());
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_stop (TRUE));
 
   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);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (set_caps_pt1_called == FALSE);
-  gst_buffer_unref (buffer);
-
-  /* once more */
-  buffer_alloc_pt1_called = FALSE;
-  set_caps_pt1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, caps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (set_caps_pt1_called == FALSE);
-  gst_buffer_unref (buffer);
-
+  gst_test_trans_setcaps (trans, caps);
+  fail_unless (set_caps_pt1_called == TRUE);
   gst_caps_unref (caps);
-#endif
+
+  gst_test_trans_push_segment (trans);
 
   gst_test_trans_free (trans);
 }
@@ -172,103 +127,66 @@
   trans = gst_test_trans_new ();
 
   /* first buffer */
+  set_caps_pt2_called = FALSE;
   caps = gst_caps_new_empty_simple ("foo/x-bar");
+  gst_test_trans_setcaps (trans, caps);
+  gst_test_trans_push_segment (trans);
 
   GST_DEBUG_OBJECT (trans, "buffer with caps, size 20");
 
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, caps);
-#endif
 
-  buffer_alloc_pt1_called = FALSE;
-  set_caps_pt2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
-  /* FIXME, passthough without pad-alloc, do pad-alloc on the srcpad */
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
-  //fail_unless (set_caps_pt2_called == TRUE);
+  fail_unless (set_caps_pt2_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
   fail_unless (buffer != NULL);
   fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), caps));
-#endif
 
   gst_buffer_unref (buffer);
 
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
-  set_caps_pt2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, caps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (set_caps_pt2_called == FALSE);
-  gst_buffer_unref (buffer);
-#endif
-
   gst_caps_unref (caps);
 
   /* second buffer, renegotiates, keeps extra type arg in caps */
   caps = gst_caps_new_simple ("foo/x-bar", "type", G_TYPE_INT, 1, NULL);
+  set_caps_pt2_called = FALSE;
+  gst_test_trans_setcaps (trans, caps);
 
   GST_DEBUG_OBJECT (trans, "buffer with caps, size 10");
 
   buffer = gst_buffer_new_and_alloc (10);
-#if 0
-  gst_buffer_set_caps (buffer, caps);
-#endif
 
-  buffer_alloc_pt1_called = FALSE;
-  set_caps_pt2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
-  /* FIXME, passthough without pad-alloc, do pad-alloc on the srcpad */
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
-  //fail_unless (set_caps_pt2_called == TRUE);
+  fail_unless (set_caps_pt2_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
   fail_unless (buffer != NULL);
   fail_unless (gst_buffer_get_size (buffer) == 10);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), caps));
-#endif
 
   gst_buffer_unref (buffer);
 
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
-  set_caps_pt2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, caps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (set_caps_pt2_called == FALSE);
-  gst_buffer_unref (buffer);
-#endif
-
   gst_caps_unref (caps);
 
   /* with caps that is a superset */
   caps = gst_caps_new_empty_simple ("foo/x-bar");
-
-#if 0
-  GST_DEBUG_OBJECT (trans, "alloc with superset caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
   set_caps_pt2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, caps, &buffer);
+  gst_test_trans_setcaps (trans, caps);
+
+  GST_DEBUG_OBJECT (trans, "buffer with caps, size 10");
+
+  buffer = gst_buffer_new_and_alloc (10);
+
+  res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (set_caps_pt2_called == FALSE);
+  fail_unless (set_caps_pt2_called == TRUE);
+
+  buffer = gst_test_trans_pop (trans);
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 10);
+
   gst_buffer_unref (buffer);
-#endif
 
   gst_caps_unref (caps);
 
@@ -304,19 +222,18 @@
   klass_transform_ip = transform_ip_1;
   trans = gst_test_trans_new ();
 
+  gst_test_trans_push_segment (trans);
+
   GST_DEBUG_OBJECT (trans, "buffer without caps, size 20");
 
   buffer = gst_buffer_new_and_alloc (20);
 
   transform_ip_1_called = FALSE;
   transform_ip_1_writable = TRUE;
-  buffer_alloc_pt1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
   fail_unless (transform_ip_1_called == TRUE);
   fail_unless (transform_ip_1_writable == TRUE);
-  /* FIXME, in-place without pad-alloc, do pad-alloc on the srcpad */
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
   fail_unless (buffer != NULL);
@@ -333,13 +250,11 @@
 
   transform_ip_1_called = FALSE;
   transform_ip_1_writable = FALSE;
-  buffer_alloc_pt1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_OK);
   fail_unless (transform_ip_1_called == TRUE);
   /* copy should have been taken with pad-alloc */
   fail_unless (transform_ip_1_writable == TRUE);
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
   /* after push, get rid of the final ref we had */
   gst_buffer_unref (buffer);
 
@@ -354,14 +269,6 @@
   /* with caps buffer */
   GST_DEBUG_OBJECT (trans, "alloc without caps, size 20");
 
-#if 0
-  buffer_alloc_pt1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, NULL, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  gst_buffer_unref (buffer);
-#endif
-
   gst_test_trans_free (trans);
 }
 
@@ -402,33 +309,8 @@
 
   trans = gst_test_trans_new ();
 
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc without caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, NULL, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (gst_buffer_get_size (buffer) == 20);
-  fail_unless (GST_BUFFER_CAPS (buffer) == NULL);
-  gst_buffer_unref (buffer);
-#endif
-
   caps = gst_caps_new_empty_simple ("foo/x-bar");
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, caps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
-  fail_unless (gst_buffer_get_size (buffer) == 20);
-  fail_unless (GST_BUFFER_CAPS (buffer) == caps);
-  gst_buffer_unref (buffer);
-#endif
+  gst_test_trans_push_segment (trans);
 
   /* first try to push a buffer without caps, this should fail */
   buffer = gst_buffer_new_and_alloc (20);
@@ -437,60 +319,41 @@
 
   transform_ip_1_called = FALSE;
   transform_ip_1_writable = FALSE;
-  buffer_alloc_pt1_called = FALSE;
   set_caps_1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
   fail_unless (transform_ip_1_called == FALSE);
   fail_unless (transform_ip_1_writable == FALSE);
   fail_unless (set_caps_1_called == FALSE);
-  fail_unless (buffer_alloc_pt1_called == FALSE);
 
   /* try to push a buffer with caps */
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_start ());
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_stop (TRUE));
+
+  set_caps_1_called = FALSE;
+  gst_test_trans_setcaps (trans, caps);
+  gst_test_trans_push_segment (trans);
+
   GST_DEBUG_OBJECT (trans, "buffer with caps, size 20");
 
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, caps);
-#endif
 
   transform_ip_1_called = FALSE;
   transform_ip_1_writable = FALSE;
-  set_caps_1_called = FALSE;
-  buffer_alloc_pt1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ip_1_called == TRUE);
-  //fail_unless (transform_ip_1_writable == TRUE);
-  //fail_unless (set_caps_1_called == TRUE);
-  /* FIXME, in-place without pad-alloc, do pad-alloc on the srcpad */
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ip_1_called == TRUE);
+  fail_unless (transform_ip_1_writable == TRUE);
+  fail_unless (set_caps_1_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), caps));
-#endif
-  //gst_buffer_unref (buffer);
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, caps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
   gst_buffer_unref (buffer);
-#endif
 
   GST_DEBUG_OBJECT (trans, "buffer with caps extra ref, size 20");
 
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, caps);
-#endif
   /* take additional ref to make it non-writable */
   gst_buffer_ref (buffer);
 
@@ -498,36 +361,20 @@
 
   transform_ip_1_called = FALSE;
   transform_ip_1_writable = FALSE;
-  buffer_alloc_pt1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ip_1_called == TRUE);
-  //fail_unless (transform_ip_1_writable == TRUE);
-  //fail_unless (buffer_alloc_pt1_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ip_1_called == TRUE);
+  fail_unless (transform_ip_1_writable == TRUE);
   /* after push, get rid of the final ref we had */
   gst_buffer_unref (buffer);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), caps));
-#endif
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
 
   /* output buffer has refcount 1 */
-  //fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
-  //gst_buffer_unref (buffer);
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 20");
-
-  buffer_alloc_pt1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, caps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_pt1_called == TRUE);
+  fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
   gst_buffer_unref (buffer);
-#endif
 
   gst_caps_unref (caps);
 
@@ -614,31 +461,6 @@
   return TRUE;
 }
 
-gboolean buffer_alloc_ct1_called;
-
-#if 0
-static GstFlowReturn
-buffer_alloc_ct1 (GstPad * pad, guint64 offset, guint size, GstCaps * caps,
-    GstBuffer ** buf)
-{
-  GstCaps *outcaps;
-
-  GST_DEBUG_OBJECT (pad, "buffer_alloc called %" G_GUINT64_FORMAT ", %u, %"
-      GST_PTR_FORMAT, offset, size, caps);
-
-  buffer_alloc_ct1_called = TRUE;
-
-  outcaps = gst_caps_new_empty_simple ("foo/x-bar");
-  fail_unless (gst_caps_is_equal (outcaps, caps));
-  gst_caps_unref (outcaps);
-
-  *buf = gst_buffer_new_and_alloc (size);
-  gst_buffer_set_caps (*buf, caps);
-
-  return GST_FLOW_OK;
-}
-#endif
-
 /* basic copy-transform, check if the transform function is called,
  * buffer should be writable. we also set a setcaps function and
  * see if it's called. */
@@ -659,42 +481,7 @@
 
   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 */
-  GST_DEBUG_OBJECT (trans, "alloc without caps, size 20");
-
-  buffer_alloc_ct1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, NULL, &buffer);
-  fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
-  /* should not call pad-alloc because the caps and sizes are different */
-  fail_unless (buffer_alloc_ct1_called == FALSE);
-#endif
-
-#if 0
-  /* with wrong (unsupported) caps */
-  GST_DEBUG_OBJECT (trans, "alloc with wrong caps, size 20");
-
-  buffer_alloc_ct1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, outcaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_if (buffer == NULL);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-  gst_buffer_unref (buffer);
-  /* FIXME, why would this call the alloc function? we try to alloc something
-   * with caps that are not supported on the sinkpad */
-  fail_unless (buffer_alloc_ct1_called == FALSE);
-
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 20");
-
-  buffer_alloc_ct1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  /* should not call pad-alloc because the caps and sizes are different */
-  fail_unless (buffer_alloc_ct1_called == FALSE);
-  gst_buffer_unref (buffer);
-#endif
+  gst_test_trans_push_segment (trans);
 
   /* first try to push a buffer without caps, this should fail */
   buffer = gst_buffer_new_and_alloc (20);
@@ -704,45 +491,38 @@
   transform_ct1_called = FALSE;
   transform_ct1_writable = FALSE;
   set_caps_ct1_called = FALSE;
-  buffer_alloc_ct1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
   fail_unless (transform_ct1_called == FALSE);
   fail_unless (transform_ct1_writable == FALSE);
   fail_unless (set_caps_ct1_called == FALSE);
-  fail_unless (buffer_alloc_ct1_called == FALSE);
 
   /* try to push a buffer with caps */
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_start ());
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_stop (TRUE));
+
+  set_caps_ct1_called = FALSE;
+  gst_test_trans_setcaps (trans, incaps);
+  gst_test_trans_push_segment (trans);
+
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
 
   GST_DEBUG_OBJECT (trans, "buffer with caps %" GST_PTR_FORMAT, incaps);
 
   transform_ct1_called = FALSE;
   transform_ct1_writable = FALSE;
-  set_caps_ct1_called = FALSE;
-  buffer_alloc_ct1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct1_called == TRUE);
-  //fail_unless (transform_ct1_writable == TRUE);
-  //fail_unless (set_caps_ct1_called == TRUE);
-  //fail_unless (buffer_alloc_ct1_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct1_called == TRUE);
+  fail_unless (transform_ct1_writable == TRUE);
+  fail_unless (set_caps_ct1_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 40);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), outcaps));
-#endif
-  //gst_buffer_unref (buffer);
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 40);
+  gst_buffer_unref (buffer);
 
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
   /* take additional ref to make it non-writable */
   gst_buffer_ref (buffer);
 
@@ -752,53 +532,21 @@
 
   transform_ct1_called = FALSE;
   transform_ct1_writable = FALSE;
-  buffer_alloc_ct1_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct1_called == TRUE);
-  //fail_unless (transform_ct1_writable == TRUE);
-  //fail_unless (buffer_alloc_ct1_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct1_called == TRUE);
+  fail_unless (transform_ct1_writable == TRUE);
   /* after push, get rid of the final ref we had */
   gst_buffer_unref (buffer);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 40);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), outcaps));
-#endif
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 40);
 
   /* output buffer has refcount 1 */
-  //fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
-  //gst_buffer_unref (buffer);
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 10");
-
-  buffer_alloc_ct1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  /* should not call pad-alloc because the caps and sizes are different, it
-   * currently still calls the pad alloc for no reason and then throws away the
-   * buffer. */
-  fail_unless (buffer_alloc_ct1_called == FALSE);
-  fail_unless (gst_buffer_get_size (buffer) == 10);
+  fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
   gst_buffer_unref (buffer);
 
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with wrong caps, size 10");
-
-  buffer_alloc_ct1_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, outcaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_if (buffer == NULL);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-  gst_buffer_unref (buffer);
-  /* should not call the pad-alloc function */
-  fail_unless (buffer_alloc_ct1_called == FALSE);
-#endif
-
   gst_caps_unref (incaps);
   gst_caps_unref (outcaps);
 
@@ -863,7 +611,10 @@
 
   if (dir == GST_PAD_SINK) {
     /* everything on the sinkpad can be transformed to the output formats */
-    res = gst_caps_from_string ("foo/x-bar;baz/x-foo");
+    if (set_caps_ct2_case == 1)
+      res = gst_caps_new_empty_simple ("foo/x-bar");
+    else
+      res = gst_caps_new_empty_simple ("baz/x-foo");
   } else {
     /* all on the srcpad can be transformed to the format of the sinkpad */
     res = gst_caps_new_empty_simple ("foo/x-bar");
@@ -896,54 +647,6 @@
   return TRUE;
 }
 
-static gint buffer_alloc_ct2_case;
-static gboolean buffer_alloc_ct2_called;
-static gboolean buffer_alloc_ct2_suggest;
-
-#if 0
-static GstFlowReturn
-buffer_alloc_ct2 (GstPad * pad, guint64 offset, guint size, GstCaps * caps,
-    GstBuffer ** buf)
-{
-  GstCaps *incaps, *outcaps;
-
-  GST_DEBUG_OBJECT (pad, "buffer_alloc called %" G_GUINT64_FORMAT ", %u, %"
-      GST_PTR_FORMAT, offset, size, caps);
-
-  buffer_alloc_ct2_called = TRUE;
-
-  if (buffer_alloc_ct2_case == 1) {
-    incaps = gst_caps_new_empty_simple ("foo/x-bar");
-    if (buffer_alloc_ct2_suggest) {
-      outcaps = gst_caps_new_empty_simple ("baz/x-foo");
-      size *= 2;
-    } else
-      outcaps = gst_caps_ref (incaps);
-  } else {
-    incaps = gst_caps_new_empty_simple ("baz/x-foo");
-    if (buffer_alloc_ct2_suggest) {
-      outcaps = gst_caps_new_empty_simple ("foo/x-bar");
-      size /= 2;
-    } else
-      outcaps = gst_caps_ref (incaps);
-  }
-  GST_DEBUG_OBJECT (pad, "expect %" GST_PTR_FORMAT, incaps);
-
-  fail_unless (gst_caps_is_equal (caps, incaps));
-
-  *buf = gst_buffer_new_and_alloc (size);
-  gst_buffer_set_caps (*buf, outcaps);
-
-  GST_DEBUG_OBJECT (pad, "return buffer of size %u, caps %" GST_PTR_FORMAT,
-      size, outcaps);
-
-  gst_caps_unref (outcaps);
-  gst_caps_unref (incaps);
-
-  return GST_FLOW_OK;
-}
-#endif
-
 /* basic copy-transform, check if the transform function is called,
  * buffer should be writable. we also set a setcaps function and
  * see if it's called. */
@@ -965,43 +668,7 @@
   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 */
-  GST_DEBUG_OBJECT (trans, "alloc without caps, size 20");
-
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, NULL, &buffer);
-  fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
-  /* should not call pad-alloc because the caps and sizes are different */
-  fail_unless (buffer_alloc_ct2_called == FALSE);
-#endif
-
-#if 0
-  /* with passthrough caps */
-  GST_DEBUG_OBJECT (trans, "alloc size 20, with passthrough caps %"
-      GST_PTR_FORMAT, incaps);
-
-  buffer_alloc_ct2_case = 1;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_ct2_called == TRUE);
-  gst_buffer_unref (buffer);
-
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc size 20, with wrong caps %" GST_PTR_FORMAT,
-      outcaps);
-
-  buffer_alloc_ct2_case = 2;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, outcaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_if (buffer == NULL);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-  gst_buffer_unref (buffer);
-  /* should not call pad-alloc because the caps and sizes are different */
-  fail_unless (buffer_alloc_ct2_called == FALSE);
-#endif
+  gst_test_trans_push_segment (trans);
 
   /* first try to push a buffer without caps, this should fail */
   buffer = gst_buffer_new_and_alloc (20);
@@ -1011,47 +678,40 @@
   transform_ct2_called = FALSE;
   transform_ct2_writable = FALSE;
   set_caps_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
   fail_unless (transform_ct2_called == FALSE);
   fail_unless (transform_ct2_writable == FALSE);
   fail_unless (set_caps_ct2_called == FALSE);
-  fail_unless (buffer_alloc_ct2_called == FALSE);
+
 
   /* try to push a buffer with caps */
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_start ());
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_stop (TRUE));
+
+  set_caps_ct2_case = 1;
+  set_caps_ct2_called = FALSE;
+  gst_test_trans_setcaps (trans, incaps);
+  gst_test_trans_push_segment (trans);
+
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
 
   GST_DEBUG_OBJECT (trans, "buffer with caps %" GST_PTR_FORMAT, incaps);
 
-  buffer_alloc_ct2_case = 1;
-  set_caps_ct2_case = 1;
   transform_ct2_called = FALSE;
   transform_ct2_writable = FALSE;
-  set_caps_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct2_called == TRUE);
-  //fail_unless (transform_ct2_writable == TRUE);
-  //fail_unless (set_caps_ct2_called == TRUE);
-  //fail_unless (buffer_alloc_ct2_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct2_called == TRUE);
+  fail_unless (transform_ct2_writable == TRUE);
+  fail_unless (set_caps_ct2_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-#endif
-  //gst_buffer_unref (buffer);
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
+  gst_buffer_unref (buffer);
 
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
   /* take additional ref to make it non-writable */
   gst_buffer_ref (buffer);
 
@@ -1061,52 +721,21 @@
 
   transform_ct2_called = FALSE;
   transform_ct2_writable = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct2_called == TRUE);
-  //fail_unless (transform_ct2_writable == TRUE);
-  //fail_unless (buffer_alloc_ct2_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct2_called == TRUE);
+  fail_unless (transform_ct2_writable == TRUE);
   /* after push, get rid of the final ref we had */
   gst_buffer_unref (buffer);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-#endif
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
 
   /* output buffer has refcount 1 */
-  //fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
-  //gst_buffer_unref (buffer);
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 10");
-
-  buffer_alloc_ct2_case = 1;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_ct2_called == TRUE);
-  fail_unless (gst_buffer_get_size (buffer) == 10);
+  fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
   gst_buffer_unref (buffer);
 
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with wrong caps, size 10");
-
-  buffer_alloc_ct2_case = 2;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, outcaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_if (buffer == NULL);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-  gst_buffer_unref (buffer);
-  /* should not call the pad-alloc function */
-  fail_unless (buffer_alloc_ct2_called == FALSE);
-#endif
-
   gst_caps_unref (incaps);
   gst_caps_unref (outcaps);
 
@@ -1135,44 +764,11 @@
   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 */
-  GST_DEBUG_OBJECT (trans, "alloc without caps, size 20");
-
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, NULL, &buffer);
-  fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
-  /* should not call pad-alloc because the caps and sizes are different */
-  fail_unless (buffer_alloc_ct2_called == FALSE);
-#endif
-
   /* with passthrough caps */
+  gst_test_trans_push_segment (trans);
   GST_DEBUG_OBJECT (trans, "alloc size 20, with passthrough caps %"
       GST_PTR_FORMAT, incaps);
 
-#if 0
-  buffer_alloc_ct2_case = 1;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_ct2_called == TRUE);
-  gst_buffer_unref (buffer);
-
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc size 20, with wrong caps %" GST_PTR_FORMAT,
-      outcaps);
-
-  buffer_alloc_ct2_case = 2;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 20, outcaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_if (buffer == NULL);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-  gst_buffer_unref (buffer);
-  /* should not call pad-alloc because the caps and sizes are different */
-  fail_unless (buffer_alloc_ct2_called == FALSE);
-#endif
-
   /* first try to push a buffer without caps, this should fail */
   buffer = gst_buffer_new_and_alloc (20);
 
@@ -1181,45 +777,37 @@
   transform_ct2_called = FALSE;
   transform_ct2_writable = FALSE;
   set_caps_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
   fail_unless (res == GST_FLOW_NOT_NEGOTIATED);
   fail_unless (transform_ct2_called == FALSE);
   fail_unless (transform_ct2_writable == FALSE);
   fail_unless (set_caps_ct2_called == FALSE);
-  fail_unless (buffer_alloc_ct2_called == FALSE);
 
   /* try to push a buffer with caps */
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
 
   GST_DEBUG_OBJECT (trans, "buffer with caps %" GST_PTR_FORMAT, incaps);
 
-  buffer_alloc_ct2_case = 1;
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_start ());
+  gst_pad_push_event (trans->srcpad, gst_event_new_flush_stop (TRUE));
+
   set_caps_ct2_case = 1;
-  transform_ct2_called = FALSE;
   set_caps_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
+  gst_test_trans_setcaps (trans, incaps);
+  gst_test_trans_push_segment (trans);
+
+  transform_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct2_called == FALSE);
-  //fail_unless (set_caps_ct2_called == TRUE);
-  //fail_unless (buffer_alloc_ct2_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct2_called == FALSE);
+  fail_unless (set_caps_ct2_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-#endif
-  //gst_buffer_unref (buffer);
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
+  gst_buffer_unref (buffer);
 
   buffer = gst_buffer_new_and_alloc (20);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
   /* take additional ref to make it non-writable */
   gst_buffer_ref (buffer);
 
@@ -1228,137 +816,60 @@
   GST_DEBUG_OBJECT (trans, "buffer with caps %" GST_PTR_FORMAT, incaps);
 
   transform_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct2_called == FALSE);
-  //fail_unless (buffer_alloc_ct2_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct2_called == FALSE);
   /* after push, get rid of the final ref we had */
   gst_buffer_unref (buffer);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-#if 0
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-#endif
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
 
   /* output buffer has refcount 1 */
-  //fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
-  //gst_buffer_unref (buffer);
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 10");
-
-  buffer_alloc_ct2_case = 1;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_ct2_called == TRUE);
-  fail_unless (gst_buffer_get_size (buffer) == 10);
+  fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
   gst_buffer_unref (buffer);
 
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with wrong caps, size 10");
-
-  buffer_alloc_ct2_case = 2;
-  buffer_alloc_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, outcaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_if (buffer == NULL);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
-  /* if we don't push here, basetransform will think it doesn't need do a
-   * pad alloc for downstream caps suggestions */
-  res = gst_test_trans_push (trans, buffer);
-  buffer = gst_test_trans_pop (trans);
-  gst_buffer_unref (buffer);
-  /* FIXME should not call the pad-alloc function but it currently does */
-  fail_unless (buffer_alloc_ct2_called == FALSE);
-#endif
-
   /* change the return value of the buffer-alloc function */
   GST_DEBUG_OBJECT (trans, "switching transform output");
-  buffer_alloc_ct2_suggest = TRUE;
 
   GST_DEBUG_OBJECT (trans,
       "buffer with in passthrough with caps %" GST_PTR_FORMAT, incaps);
   buffer = gst_buffer_new_and_alloc (10);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
 
   /* don't suggest anything else */
-  buffer_alloc_ct2_case = 1;
   set_caps_ct2_case = 2;
+  gst_pad_push_event (trans->sinkpad, gst_event_new_reconfigure ());
   transform_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct2_called == TRUE);
-  /* FIXME, pad alloc must be called to get the new caps, because we don't call
-   * pad alloc */
-  //fail_unless (buffer_alloc_ct2_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct2_called == TRUE);
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  /* FIXME changing src caps should produce converted buffer */
-#if 0
-  GST_DEBUG_OBJECT (trans, "received caps %" GST_PTR_FORMAT,
-      GST_BUFFER_CAPS (buffer));
-#endif
-  //fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), outcaps));
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
 
   /* output buffer has refcount 1 */
-  //fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
-  //gst_buffer_unref (buffer);
-
-#if 0
-  /* with caps buffer */
-  GST_DEBUG_OBJECT (trans, "alloc with caps, size 10");
-
-  set_caps_ct2_case = 0;
-  buffer_alloc_ct2_case = 1;
-  buffer_alloc_ct2_called = FALSE;
-  set_caps_ct2_called = FALSE;
-  res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, incaps, &buffer);
-  fail_unless (res == GST_FLOW_OK);
-  fail_unless (buffer_alloc_ct2_called == TRUE);
-  /* FIXME a buffer alloc should never set caps */
-  fail_unless (set_caps_ct2_called == FALSE);
-  fail_unless (gst_buffer_get_size (buffer) == 10);
-  /* FIXME, ideally we want to reuse these caps */
-  fail_unless (GST_BUFFER_CAPS (buffer) == incaps);
-  fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), incaps));
+  fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
   gst_buffer_unref (buffer);
-#endif
 
   GST_DEBUG_OBJECT (trans, "buffer with caps %" GST_PTR_FORMAT, incaps);
   buffer = gst_buffer_new_and_alloc (10);
-#if 0
-  gst_buffer_set_caps (buffer, incaps);
-#endif
 
   /* don't suggest anything else */
-  buffer_alloc_ct2_suggest = FALSE;
-  buffer_alloc_ct2_case = 0;
   transform_ct2_called = FALSE;
-  buffer_alloc_ct2_called = FALSE;
   res = gst_test_trans_push (trans, buffer);
-  //fail_unless (res == GST_FLOW_OK);
-  //fail_unless (transform_ct2_called == TRUE);
-  //fail_unless (buffer_alloc_ct2_called == TRUE);
+  fail_unless (res == GST_FLOW_OK);
+  fail_unless (transform_ct2_called == TRUE);
   /* after push, get rid of the final ref we had */
 
   buffer = gst_test_trans_pop (trans);
-  //fail_unless (buffer != NULL);
-  //fail_unless (gst_buffer_get_size (buffer) == 20);
-  //fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), outcaps));
+  fail_unless (buffer != NULL);
+  fail_unless (gst_buffer_get_size (buffer) == 20);
 
   /* output buffer has refcount 1 */
-  //fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
-  //gst_buffer_unref (buffer);
+  fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (buffer) == 1);
+  gst_buffer_unref (buffer);
 
   gst_caps_unref (incaps);
   gst_caps_unref (outcaps);
diff --git a/tests/check/libs/typefindhelper.c b/tests/check/libs/typefindhelper.c
index 346539b..750fc18 100644
--- a/tests/check/libs/typefindhelper.c
+++ b/tests/check/libs/typefindhelper.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/cleanup.c b/tests/check/pipelines/cleanup.c
index ffab6ec..5ccb50b 100644
--- a/tests/check/pipelines/cleanup.c
+++ b/tests/check/pipelines/cleanup.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/check/pipelines/parse-disabled.c b/tests/check/pipelines/parse-disabled.c
index b70a5f6..5ddb0e3 100644
--- a/tests/check/pipelines/parse-disabled.c
+++ b/tests/check/pipelines/parse-disabled.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/parse-launch.c b/tests/check/pipelines/parse-launch.c
index 16d70c4..e23a045 100644
--- a/tests/check/pipelines/parse-launch.c
+++ b/tests/check/pipelines/parse-launch.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/queue-error.c b/tests/check/pipelines/queue-error.c
index 50f9104..81e9d25 100644
--- a/tests/check/pipelines/queue-error.c
+++ b/tests/check/pipelines/queue-error.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c
index 35f2fb9..ca7fd3b 100644
--- a/tests/check/pipelines/seek.c
+++ b/tests/check/pipelines/seek.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c
index 4c24aa5..62385b2 100644
--- a/tests/check/pipelines/simple-launch-lines.c
+++ b/tests/check/pipelines/simple-launch-lines.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/check/pipelines/stress.c b/tests/check/pipelines/stress.c
index f776633..7c2d06e 100644
--- a/tests/check/pipelines/stress.c
+++ b/tests/check/pipelines/stress.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -66,7 +66,7 @@
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
   g_timeout_add (500, &change_state_timeout, pipeline);
-  g_timeout_add (10000, &quit_timeout, NULL);
+  g_timeout_add_seconds (10, &quit_timeout, NULL);
 
   while (!quit) {
     g_main_context_iteration (NULL, TRUE);
diff --git a/tests/check/tools/gstinspect.c b/tests/check/tools/gstinspect.c
index e89d998..1d3d8cc 100644
--- a/tests/check/tools/gstinspect.c
+++ b/tests/check/tools/gstinspect.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index ad9cc5d..cd5d232 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +19,51 @@
 # 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; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,8 +83,8 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = tests/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -65,7 +92,6 @@
 	$(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 \
@@ -89,33 +115,42 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -123,9 +158,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -252,15 +307,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -270,11 +321,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -282,6 +331,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -344,6 +394,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -515,22 +566,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -545,57 +599,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -611,12 +620,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -628,15 +632,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -645,6 +645,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -805,22 +820,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/tests/examples/adapter/Makefile.in b/tests/examples/adapter/Makefile.in
index 08dbfa6..f5edcc8 100644
--- a/tests/examples/adapter/Makefile.in
+++ b/tests/examples/adapter/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = adapter_test$(EXEEXT)
 subdir = tests/examples/adapter
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -106,9 +135,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 adapter_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(adapter_test_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +163,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = adapter_test.c
 DIST_SOURCES = adapter_test.c
 am__can_run_installinfo = \
@@ -142,6 +180,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -243,15 +298,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -261,11 +312,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -273,6 +322,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -335,6 +385,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -470,6 +521,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) $(EXTRA_adapter_test_DEPENDENCIES) 
 	@rm -f adapter_test$(EXEEXT)
 	$(AM_V_CCLD)$(adapter_test_LINK) $(adapter_test_OBJECTS) $(adapter_test_LDADD) $(LIBS)
@@ -523,26 +575,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -554,15 +595,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -571,6 +608,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -712,18 +764,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/controller/Makefile.in b/tests/examples/controller/Makefile.in
index b8bb97c..94ed384 100644
--- a/tests/examples/controller/Makefile.in
+++ b/tests/examples/controller/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,14 @@
 noinst_PROGRAMS = audio-example$(EXEEXT) control-sources$(EXEEXT) \
 	text-color-example$(EXEEXT)
 subdir = tests/examples/controller
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -86,12 +113,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -108,6 +137,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 control_sources_SOURCES = control-sources.c
 control_sources_OBJECTS = control-sources.$(OBJEXT)
 control_sources_LDADD = $(LDADD)
@@ -118,6 +148,18 @@
 text_color_example_LDADD = $(LDADD)
 text_color_example_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -130,20 +172,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 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 = \
@@ -151,6 +189,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -252,15 +307,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -270,11 +321,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -282,6 +331,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -344,6 +394,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -482,12 +533,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) $(EXTRA_audio_example_DEPENDENCIES) 
 	@rm -f audio-example$(EXEEXT)
 	$(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)
@@ -529,26 +583,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -560,15 +603,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -577,6 +616,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -718,18 +772,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 Android.mk: Makefile.am audio-example.c
diff --git a/tests/examples/helloworld/Makefile.in b/tests/examples/helloworld/Makefile.in
index c2602b8..5294d8b 100644
--- a/tests/examples/helloworld/Makefile.in
+++ b/tests/examples/helloworld/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = helloworld$(EXEEXT)
 subdir = tests/examples/helloworld
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -105,9 +134,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 helloworld_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(helloworld_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = helloworld.c
 DIST_SOURCES = helloworld.c
 am__can_run_installinfo = \
@@ -141,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -242,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -260,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -272,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -334,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -469,6 +520,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) $(EXTRA_helloworld_DEPENDENCIES) 
 	@rm -f helloworld$(EXEEXT)
 	$(AM_V_CCLD)$(helloworld_LINK) $(helloworld_OBJECTS) $(helloworld_LDADD) $(LIBS)
@@ -522,26 +574,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -553,15 +594,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -570,6 +607,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -711,18 +763,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/launch/Makefile.in b/tests/examples/launch/Makefile.in
index 1fd19df..39c4e09 100644
--- a/tests/examples/launch/Makefile.in
+++ b/tests/examples/launch/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = mp3parselaunch$(EXEEXT)
 subdir = tests/examples/launch
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -105,10 +134,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 mp3parselaunch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(mp3parselaunch_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
 	$@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +163,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = mp3parselaunch.c
 DIST_SOURCES = mp3parselaunch.c
 am__can_run_installinfo = \
@@ -142,6 +180,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -243,15 +298,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -261,11 +312,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -273,6 +322,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -335,6 +385,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -470,6 +521,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) $(EXTRA_mp3parselaunch_DEPENDENCIES) 
 	@rm -f mp3parselaunch$(EXEEXT)
 	$(AM_V_CCLD)$(mp3parselaunch_LINK) $(mp3parselaunch_OBJECTS) $(mp3parselaunch_LDADD) $(LIBS)
@@ -523,26 +575,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -554,15 +595,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -571,6 +608,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -712,18 +764,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 #noinst_SCRIPTS = mp3play
diff --git a/tests/examples/manual/Makefile.in b/tests/examples/manual/Makefile.in
index 2eb2d58..631082a 100644
--- a/tests/examples/manual/Makefile.in
+++ b/tests/examples/manual/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -59,14 +86,14 @@
 	ghostpad$(EXEEXT) init$(EXEEXT)
 noinst_PROGRAMS = $(am__EXEEXT_3)
 subdir = tests/examples/manual
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(top_srcdir)/test-driver
 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 \
@@ -90,12 +117,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -124,6 +153,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 appsrc_SOURCES = appsrc.c
 appsrc_OBJECTS = appsrc.$(OBJEXT)
 appsrc_LDADD = $(LDADD)
@@ -256,6 +286,18 @@
 typefind_DEPENDENCIES =  \
 	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -268,20 +310,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = appsink.c appsrc.c bin.c blockprobe.c decodebin.c \
 	dynformat.c effectswitch.c elementcreate.c elementfactory.c \
 	elementget.c elementlink.c elementmake.c ghostpad.c \
@@ -297,10 +335,229 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+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__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__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -400,15 +657,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -418,11 +671,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -430,6 +681,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -492,6 +744,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -623,7 +876,7 @@
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -663,72 +916,95 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 appsink$(EXEEXT): $(appsink_OBJECTS) $(appsink_DEPENDENCIES) $(EXTRA_appsink_DEPENDENCIES) 
 	@rm -f appsink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(appsink_OBJECTS) $(appsink_LDADD) $(LIBS)
+
 appsrc$(EXEEXT): $(appsrc_OBJECTS) $(appsrc_DEPENDENCIES) $(EXTRA_appsrc_DEPENDENCIES) 
 	@rm -f appsrc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(appsrc_OBJECTS) $(appsrc_LDADD) $(LIBS)
+
 bin$(EXEEXT): $(bin_OBJECTS) $(bin_DEPENDENCIES) $(EXTRA_bin_DEPENDENCIES) 
 	@rm -f bin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(bin_OBJECTS) $(bin_LDADD) $(LIBS)
+
 blockprobe$(EXEEXT): $(blockprobe_OBJECTS) $(blockprobe_DEPENDENCIES) $(EXTRA_blockprobe_DEPENDENCIES) 
 	@rm -f blockprobe$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(blockprobe_OBJECTS) $(blockprobe_LDADD) $(LIBS)
+
 decodebin$(EXEEXT): $(decodebin_OBJECTS) $(decodebin_DEPENDENCIES) $(EXTRA_decodebin_DEPENDENCIES) 
 	@rm -f decodebin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(decodebin_OBJECTS) $(decodebin_LDADD) $(LIBS)
+
 dynformat$(EXEEXT): $(dynformat_OBJECTS) $(dynformat_DEPENDENCIES) $(EXTRA_dynformat_DEPENDENCIES) 
 	@rm -f dynformat$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(dynformat_OBJECTS) $(dynformat_LDADD) $(LIBS)
+
 effectswitch$(EXEEXT): $(effectswitch_OBJECTS) $(effectswitch_DEPENDENCIES) $(EXTRA_effectswitch_DEPENDENCIES) 
 	@rm -f effectswitch$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(effectswitch_OBJECTS) $(effectswitch_LDADD) $(LIBS)
+
 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) $(EXTRA_elementfactory_DEPENDENCIES) 
 	@rm -f elementfactory$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementfactory_OBJECTS) $(elementfactory_LDADD) $(LIBS)
+
 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) $(EXTRA_elementlink_DEPENDENCIES) 
 	@rm -f elementlink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementlink_OBJECTS) $(elementlink_LDADD) $(LIBS)
+
 elementmake$(EXEEXT): $(elementmake_OBJECTS) $(elementmake_DEPENDENCIES) $(EXTRA_elementmake_DEPENDENCIES) 
 	@rm -f elementmake$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementmake_OBJECTS) $(elementmake_LDADD) $(LIBS)
+
 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) $(EXTRA_helloworld_DEPENDENCIES) 
 	@rm -f helloworld$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(helloworld_OBJECTS) $(helloworld_LDADD) $(LIBS)
+
 init$(EXEEXT): $(init_OBJECTS) $(init_DEPENDENCIES) $(EXTRA_init_DEPENDENCIES) 
 	@rm -f init$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(init_OBJECTS) $(init_LDADD) $(LIBS)
+
 norebuffer$(EXEEXT): $(norebuffer_OBJECTS) $(norebuffer_DEPENDENCIES) $(EXTRA_norebuffer_DEPENDENCIES) 
 	@rm -f norebuffer$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(norebuffer_OBJECTS) $(norebuffer_LDADD) $(LIBS)
+
 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) $(EXTRA_playbin_DEPENDENCIES) 
 	@rm -f playbin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(playbin_OBJECTS) $(playbin_LDADD) $(LIBS)
+
 playsink$(EXEEXT): $(playsink_OBJECTS) $(playsink_DEPENDENCIES) $(EXTRA_playsink_DEPENDENCIES) 
 	@rm -f playsink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(playsink_OBJECTS) $(playsink_LDADD) $(LIBS)
+
 probe$(EXEEXT): $(probe_OBJECTS) $(probe_DEPENDENCIES) $(EXTRA_probe_DEPENDENCIES) 
 	@rm -f probe$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(probe_OBJECTS) $(probe_LDADD) $(LIBS)
+
 query$(EXEEXT): $(query_OBJECTS) $(query_DEPENDENCIES) $(EXTRA_query_DEPENDENCIES) 
 	@rm -f query$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(query_OBJECTS) $(query_LDADD) $(LIBS)
+
 testrtpool$(EXEEXT): $(testrtpool_OBJECTS) $(testrtpool_DEPENDENCIES) $(EXTRA_testrtpool_DEPENDENCIES) 
 	@rm -f testrtpool$(EXEEXT)
 	$(AM_V_CCLD)$(testrtpool_LINK) $(testrtpool_OBJECTS) $(testrtpool_LDADD) $(LIBS)
+
 typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) $(EXTRA_typefind_DEPENDENCIES) 
 	@rm -f typefind$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(typefind_OBJECTS) $(typefind_LDADD) $(LIBS)
@@ -804,26 +1080,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -835,15 +1100,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -852,102 +1113,236 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+	  fi; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
 	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
-	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      color_start= color_end=; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
-	    else \
-	      skipped="($$skip tests were not run)"; \
-	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  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
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all 
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+bin.log: bin$(EXEEXT)
+	@p='bin$(EXEEXT)'; \
+	b='bin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elementcreate.log: elementcreate$(EXEEXT)
+	@p='elementcreate$(EXEEXT)'; \
+	b='elementcreate'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elementfactory.log: elementfactory$(EXEEXT)
+	@p='elementfactory$(EXEEXT)'; \
+	b='elementfactory'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elementget.log: elementget$(EXEEXT)
+	@p='elementget$(EXEEXT)'; \
+	b='elementget'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elementlink.log: elementlink$(EXEEXT)
+	@p='elementlink$(EXEEXT)'; \
+	b='elementlink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elementmake.log: elementmake$(EXEEXT)
+	@p='elementmake$(EXEEXT)'; \
+	b='elementmake'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ghostpad.log: ghostpad$(EXEEXT)
+	@p='ghostpad$(EXEEXT)'; \
+	b='ghostpad'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+init.log: init$(EXEEXT)
+	@p='init$(EXEEXT)'; \
+	b='init'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@	@p='$<'; \
+@am__EXEEXT_TRUE@	$(am__set_b); \
+@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1006,6 +1401,9 @@
 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 	fi
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -1091,9 +1489,9 @@
 
 .MAKE: all check check-am install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
-	clean-generic clean-libtool clean-noinstPROGRAMS ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+	clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
+	ctags ctags-am 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 \
@@ -1103,7 +1501,7 @@
 	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
+	recheck tags tags-am uninstall uninstall-am
 
 
 elementmake.c elementcreate.c elementget.c elementlink.c elementfactory.c: $(top_srcdir)/docs/manual/basics-elements.xml
diff --git a/tests/examples/manual/effectswitch.c b/tests/examples/manual/effectswitch.c
index 5cba9c0..a8a4cda 100644
--- a/tests/examples/manual/effectswitch.c
+++ b/tests/examples/manual/effectswitch.c
@@ -26,7 +26,7 @@
 
   gst_pad_remove_probe (pad, GST_PAD_PROBE_INFO_ID (info));
 
-  /* push current event back into the queue */
+  /* push current effect back into the queue */
   g_queue_push_tail (&effects, gst_object_ref (cur_effect));
   /* take next effect from the queue */
   next = g_queue_pop_head (&effects);
diff --git a/tests/examples/memory/Makefile.in b/tests/examples/memory/Makefile.in
index 7ae750a..12672d1 100644
--- a/tests/examples/memory/Makefile.in
+++ b/tests/examples/memory/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = memory_test$(EXEEXT)
 subdir = tests/examples/memory
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -107,9 +136,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 memory_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(memory_test_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -122,20 +164,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(memory_test_SOURCES)
 DIST_SOURCES = $(memory_test_SOURCES)
 am__can_run_installinfo = \
@@ -143,6 +181,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -244,15 +299,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -262,11 +313,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -274,6 +323,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -336,6 +386,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -472,6 +523,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 memory_test$(EXEEXT): $(memory_test_OBJECTS) $(memory_test_DEPENDENCIES) $(EXTRA_memory_test_DEPENDENCIES) 
 	@rm -f memory_test$(EXEEXT)
 	$(AM_V_CCLD)$(memory_test_LINK) $(memory_test_OBJECTS) $(memory_test_LDADD) $(LIBS)
@@ -555,26 +607,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -586,15 +627,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -603,6 +640,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -744,18 +796,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/memory/my-memory.c b/tests/examples/memory/my-memory.c
index 1bbd960..2c1b7cb 100644
--- a/tests/examples/memory/my-memory.c
+++ b/tests/examples/memory/my-memory.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "my-memory.h"
diff --git a/tests/examples/memory/my-memory.h b/tests/examples/memory/my-memory.h
index dad2d24..3f43e1d 100644
--- a/tests/examples/memory/my-memory.h
+++ b/tests/examples/memory/my-memory.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/examples/memory/my-vidmem.c b/tests/examples/memory/my-vidmem.c
index b1a58be..1303a67 100644
--- a/tests/examples/memory/my-vidmem.c
+++ b/tests/examples/memory/my-vidmem.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "my-vidmem.h"
diff --git a/tests/examples/memory/my-vidmem.h b/tests/examples/memory/my-vidmem.h
index 337ebbb..e11fa5c 100644
--- a/tests/examples/memory/my-vidmem.h
+++ b/tests/examples/memory/my-vidmem.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/examples/metadata/Makefile.in b/tests/examples/metadata/Makefile.in
index 4d72ebc..5a470a8 100644
--- a/tests/examples/metadata/Makefile.in
+++ b/tests/examples/metadata/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = read-metadata$(EXEEXT)
 subdir = tests/examples/metadata
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -105,9 +134,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 read_metadata_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(read_metadata_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = read-metadata.c
 DIST_SOURCES = read-metadata.c
 am__can_run_installinfo = \
@@ -141,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -242,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -260,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -272,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -334,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -469,6 +520,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) $(EXTRA_read_metadata_DEPENDENCIES) 
 	@rm -f read-metadata$(EXEEXT)
 	$(AM_V_CCLD)$(read_metadata_LINK) $(read_metadata_OBJECTS) $(read_metadata_LDADD) $(LIBS)
@@ -522,26 +574,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -553,15 +594,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -570,6 +607,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -711,18 +763,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/metadata/read-metadata.c b/tests/examples/metadata/read-metadata.c
index 9678862..a872289 100644
--- a/tests/examples/metadata/read-metadata.c
+++ b/tests/examples/metadata/read-metadata.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/examples/queue/Makefile.in b/tests/examples/queue/Makefile.in
index 67256bb..a9d7dca 100644
--- a/tests/examples/queue/Makefile.in
+++ b/tests/examples/queue/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = queue$(EXEEXT)
 subdir = tests/examples/queue
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -105,9 +134,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 queue_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(queue_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = queue.c
 DIST_SOURCES = queue.c
 am__can_run_installinfo = \
@@ -141,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -242,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -260,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -272,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -334,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -469,6 +520,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) $(EXTRA_queue_DEPENDENCIES) 
 	@rm -f queue$(EXEEXT)
 	$(AM_V_CCLD)$(queue_LINK) $(queue_OBJECTS) $(queue_LDADD) $(LIBS)
@@ -522,26 +574,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -553,15 +594,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -570,6 +607,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -711,18 +763,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/stepping/Makefile.in b/tests/examples/stepping/Makefile.in
index 62ade0c..37f3398 100644
--- a/tests/examples/stepping/Makefile.in
+++ b/tests/examples/stepping/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = framestep1$(EXEEXT)
 subdir = tests/examples/stepping
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -105,9 +134,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 framestep1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(framestep1_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = framestep1.c
 DIST_SOURCES = framestep1.c
 am__can_run_installinfo = \
@@ -141,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -242,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -260,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -272,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -334,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -469,6 +520,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) $(EXTRA_framestep1_DEPENDENCIES) 
 	@rm -f framestep1$(EXEEXT)
 	$(AM_V_CCLD)$(framestep1_LINK) $(framestep1_OBJECTS) $(framestep1_LDADD) $(LIBS)
@@ -522,26 +574,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -553,15 +594,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -570,6 +607,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -711,18 +763,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/streams/Makefile.in b/tests/examples/streams/Makefile.in
index cc3a419..b106c81 100644
--- a/tests/examples/streams/Makefile.in
+++ b/tests/examples/streams/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,14 @@
 noinst_PROGRAMS = stream-status$(EXEEXT) $(am__EXEEXT_1)
 @HAVE_PTHREAD_TRUE@am__append_1 = rtpool-test
 subdir = tests/examples/streams
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -86,12 +113,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -108,6 +137,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 rtpool_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(rtpool_test_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -117,6 +147,18 @@
 stream_status_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(stream_status_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -129,20 +171,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(rtpool_test_SOURCES) $(stream_status_SOURCES)
 DIST_SOURCES = $(rtpool_test_SOURCES) $(stream_status_SOURCES)
 am__can_run_installinfo = \
@@ -150,6 +188,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -251,15 +306,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -269,11 +320,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -281,6 +330,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -343,6 +393,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -483,9 +534,11 @@
 	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) $(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) $(EXTRA_stream_status_DEPENDENCIES) 
 	@rm -f stream-status$(EXEEXT)
 	$(AM_V_CCLD)$(stream_status_LINK) $(stream_status_OBJECTS) $(stream_status_LDADD) $(LIBS)
@@ -569,26 +622,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -600,15 +642,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -617,6 +655,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -758,18 +811,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/streams/stream-status.c b/tests/examples/streams/stream-status.c
index 1331110..c94823e 100644
--- a/tests/examples/streams/stream-status.c
+++ b/tests/examples/streams/stream-status.c
@@ -82,10 +82,8 @@
           g_message ("created task %p", task);
           break;
         case GST_STREAM_STATUS_TYPE_ENTER:
-          if (task) {
-            /* g_message ("raising task priority for %p", task); */
-            /* FIXME: do something here */
-          }
+          /* g_message ("raising task priority"); */
+          /* setpriority (PRIO_PROCESS, 0, -10); */
           break;
         case GST_STREAM_STATUS_TYPE_LEAVE:
           break;
diff --git a/tests/examples/streams/testrtpool.c b/tests/examples/streams/testrtpool.c
index f2e6fa5..0a29fda 100644
--- a/tests/examples/streams/testrtpool.c
+++ b/tests/examples/streams/testrtpool.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <pthread.h>
diff --git a/tests/examples/streams/testrtpool.h b/tests/examples/streams/testrtpool.h
index 580cffa..95e62e9 100644
--- a/tests/examples/streams/testrtpool.h
+++ b/tests/examples/streams/testrtpool.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __TEST_RT_POOL_H__
diff --git a/tests/examples/typefind/Makefile.in b/tests/examples/typefind/Makefile.in
index 25a6688..97dc803 100644
--- a/tests/examples/typefind/Makefile.in
+++ b/tests/examples/typefind/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@
 target_triplet = @target@
 noinst_PROGRAMS = typefind$(EXEEXT)
 subdir = tests/examples/typefind
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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 \
@@ -85,12 +112,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -105,9 +134,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 typefind_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(typefind_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = typefind.c
 DIST_SOURCES = typefind.c
 am__can_run_installinfo = \
@@ -141,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -242,15 +297,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -260,11 +311,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -272,6 +321,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -334,6 +384,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -469,6 +520,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) $(EXTRA_typefind_DEPENDENCIES) 
 	@rm -f typefind$(EXEEXT)
 	$(AM_V_CCLD)$(typefind_LINK) $(typefind_OBJECTS) $(typefind_LDADD) $(LIBS)
@@ -522,26 +574,15 @@
 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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -553,15 +594,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -570,6 +607,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -711,18 +763,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS 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-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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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-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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/typefind/typefind.c b/tests/examples/typefind/typefind.c
index 58f11db..d9576a4 100644
--- a/tests/examples/typefind/typefind.c
+++ b/tests/examples/typefind/typefind.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/misc/Makefile.in b/tests/misc/Makefile.in
index 8321517..d0bb5d8 100644
--- a/tests/misc/Makefile.in
+++ b/tests/misc/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/misc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -83,24 +109,32 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.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_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,15 +242,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -225,11 +256,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -237,6 +266,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,6 +329,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -433,11 +464,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -573,15 +604,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/misc/network-clock-utils.scm b/tests/misc/network-clock-utils.scm
index 174b5f7..1a71e32 100644
--- a/tests/misc/network-clock-utils.scm
+++ b/tests/misc/network-clock-utils.scm
@@ -15,8 +15,8 @@
 ;; along with this program; if not, contact:
 ;;
 ;; Free Software Foundation           Voice:  +1-617-542-5942
-;; 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
-;; Boston, MA  02111-1307,  USA       gnu@gnu.org
+;; 51 Franklin St, Fifth Floor        Fax:    +1-617-542-2652
+;; Boston, MA  02110-1301,  USA       gnu@gnu.org
 
 
 ;;; Commentary:
diff --git a/tests/misc/network-clock.scm b/tests/misc/network-clock.scm
index 10878c6..cd21bef 100755
--- a/tests/misc/network-clock.scm
+++ b/tests/misc/network-clock.scm
@@ -20,8 +20,8 @@
 ;; along with this program; if not, contact:
 ;;
 ;; Free Software Foundation           Voice:  +1-617-542-5942
-;; 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
-;; Boston, MA  02111-1307,  USA       gnu@gnu.org
+;; 51 Franklin St, Fifth Floor        Fax:    +1-617-542-2652
+;; Boston, MA  02110-1301,  USA       gnu@gnu.org
 
 
 ;;; Commentary:
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 9c1f133..c79e667 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     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;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -59,15 +86,14 @@
 @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
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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 \
@@ -91,12 +117,14 @@
 	$(top_srcdir)/common/m4/pkg.m4 $(top_srcdir)/m4/ax_pthread.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/inttypes_h.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/longlong.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
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -115,6 +143,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 gst_inspect_@GST_API_VERSION@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(gst_inspect_@GST_API_VERSION@_CFLAGS) $(CFLAGS) \
@@ -139,6 +168,18 @@
 	$(gst_typefind_@GST_API_VERSION@_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SCRIPTS = $(noinst_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +192,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 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_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(gst_inspect_@GST_API_VERSION@_SOURCES) \
 	$(gst_launch_@GST_API_VERSION@_SOURCES) \
 	$(gst_typefind_@GST_API_VERSION@_SOURCES)
@@ -207,6 +244,23 @@
 NROFF = nroff
 MANS = $(man_MANS)
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -308,15 +362,11 @@
 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_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
 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@
 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
 GST_VERSION_MICRO = @GST_VERSION_MICRO@
 GST_VERSION_MINOR = @GST_VERSION_MINOR@
@@ -326,11 +376,9 @@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
-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@
@@ -338,6 +386,7 @@
 HAVE_PNMTOPS = @HAVE_PNMTOPS@
 HAVE_PS2PDF = @HAVE_PS2PDF@
 HAVE_XMLLINT = @HAVE_XMLLINT@
+HAVE_XSLTPROC = @HAVE_XSLTPROC@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -400,6 +449,7 @@
 PKG_CONFIG = @PKG_CONFIG@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
+PRINTF_CFLAGS = @PRINTF_CFLAGS@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
 PTHREAD_CC = @PTHREAD_CC@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
@@ -557,10 +607,12 @@
 	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; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -581,7 +633,8 @@
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -594,12 +647,15 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 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)
@@ -726,26 +782,15 @@
 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
 	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 
-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
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -757,15 +802,11 @@
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -774,24 +815,26 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-	@list='$(MANS)'; if test -n "$$list"; then \
-	  list=`for p in $$list; do \
-	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-	  if test -n "$$list" && \
-	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
-	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
-	    exit 1; \
-	  else :; fi; \
-	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -933,20 +976,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic 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-binPROGRAMS 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-man1 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-binPROGRAMS uninstall-man \
-	uninstall-man1
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+	ctags ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	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-man1 \
+	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 tags-am uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-man uninstall-man1
 
 
 Android.mk: Makefile.am
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
index fd7e7cf..fcf4724 100644
--- a/tools/gst-inspect.c
+++ b/tools/gst-inspect.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -81,8 +81,19 @@
 
   for (i = 0; i < gst_caps_get_size (caps); i++) {
     GstStructure *structure = gst_caps_get_structure (caps, i);
+    GstCapsFeatures *features = gst_caps_get_features (caps, i);
 
-    n_print ("%s%s\n", pfx, gst_structure_get_name (structure));
+    if (features && (gst_caps_features_is_any (features) ||
+            !gst_caps_features_is_equal (features,
+                GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))) {
+      gchar *features_string = gst_caps_features_to_string (features);
+
+      n_print ("%s%s(%s)\n", pfx, gst_structure_get_name (structure),
+          features_string);
+      g_free (features_string);
+    } else {
+      n_print ("%s%s\n", pfx, gst_structure_get_name (structure));
+    }
     gst_structure_foreach (structure, print_field, (gpointer) pfx);
   }
 }
@@ -190,7 +201,7 @@
 
   rank = gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (factory));
   n_print ("Factory Details:\n");
-  n_print ("  Rank:\t\t%s (%d)\n", get_rank_name (s, rank), rank);
+  n_print ("  %-25s%s (%d)\n", "Rank", get_rank_name (s, rank), rank);
 
   keys = gst_element_factory_get_metadata_keys (factory);
   if (keys != NULL) {
@@ -200,7 +211,7 @@
 
       val = gst_element_factory_get_metadata (factory, key);
       key[0] = g_ascii_toupper (key[0]);
-      n_print ("  %s:\t\t%s\n", key, val);
+      n_print ("  %-25s%s\n", key, val);
     }
     g_strfreev (keys);
   }
@@ -1172,12 +1183,12 @@
   const gchar *filename = gst_plugin_get_filename (plugin);
 
   n_print ("Plugin Details:\n");
-  n_print ("  Name:\t\t\t%s\n", gst_plugin_get_name (plugin));
-  n_print ("  Description:\t\t%s\n", gst_plugin_get_description (plugin));
-  n_print ("  Filename:\t\t%s\n", (filename != NULL) ? filename : "(null)");
-  n_print ("  Version:\t\t%s\n", gst_plugin_get_version (plugin));
-  n_print ("  License:\t\t%s\n", gst_plugin_get_license (plugin));
-  n_print ("  Source module:\t%s\n", gst_plugin_get_source (plugin));
+  n_print ("  %-25s%s\n", "Name", gst_plugin_get_name (plugin));
+  n_print ("  %-25s%s\n", "Description", gst_plugin_get_description (plugin));
+  n_print ("  %-25s%s\n", "Filename", (filename != NULL) ? filename : "(null)");
+  n_print ("  %-25s%s\n", "Version", gst_plugin_get_version (plugin));
+  n_print ("  %-25s%s\n", "License", gst_plugin_get_license (plugin));
+  n_print ("  %-25s%s\n", "Source module", gst_plugin_get_source (plugin));
 
   if (release_date != NULL) {
     const gchar *tz = "(UTC)";
@@ -1195,11 +1206,11 @@
     } else {
       tz = "";
     }
-    n_print ("  Source release date:\t%s%s\n", str, tz);
+    n_print ("  %-25s%s%s\n", "Source release date", str, tz);
     g_free (str);
   }
-  n_print ("  Binary package:\t%s\n", gst_plugin_get_package (plugin));
-  n_print ("  Origin URL:\t\t%s\n", gst_plugin_get_origin (plugin));
+  n_print ("  %-25s%s\n", "Binary package", gst_plugin_get_package (plugin));
+  n_print ("  %-25s%s\n", "Origin URL", gst_plugin_get_origin (plugin));
   n_print ("\n");
 }
 
@@ -1247,7 +1258,7 @@
       if (extensions) {
         guint i = 0;
 
-        g_print ("%s: %s: ", gst_plugin_get_name (plugin),
+        g_print ("  %s: %s: ", gst_plugin_get_name (plugin),
             gst_plugin_feature_get_name (feature));
         while (extensions[i]) {
           g_print ("%s%s", i > 0 ? ", " : "", extensions[i]);
@@ -1255,7 +1266,7 @@
         }
         g_print ("\n");
       } else
-        g_print ("%s: %s: no extensions\n", gst_plugin_get_name (plugin),
+        g_print ("  %s: %s: no extensions\n", gst_plugin_get_name (plugin),
             gst_plugin_feature_get_name (feature));
 
       num_typefinders++;
diff --git a/tools/gst-launch.1.in b/tools/gst-launch.1.in
index 299b398..13eadb3 100644
--- a/tools/gst-launch.1.in
+++ b/tools/gst-launch.1.in
@@ -406,20 +406,26 @@
 .SH "ENVIRONMENT VARIABLES"
 .TP
 \fBGST_DEBUG\fR
-Comma-separated list of debug categories and levels, e.g.
-GST_DEBUG=totem:4,typefind:5
+Comma-separated list of debug categories and levels (e.g.
+GST_DEBUG=totem:4,typefind:5). '*' is allowed as a wildcard as part of
+debug category names (e.g. GST_DEBUG=*sink:6,*audio*:6). Since 1.2.0 it is
+also possible to specify the log level by name (1=ERROR, 2=WARN, 3=FIXME,
+4=INFO, 5=DEBUG, 6=LOG, 7=TRACE, 9=MEMDUMP) (e.g. GST_DEBUG=*audio*:LOG)
 .TP
 \fBGST_DEBUG_NO_COLOR\fR
 When this environment variable is set, coloured debug output is disabled.
 .TP
 \fBGST_DEBUG_DUMP_DOT_DIR\fR
-When set to a filesystem path, store dot files of pipeline graphs there.
+When set to a filesystem path, store 'dot' files of pipeline graphs there.
+These can then later be converted into an image using the 'dot' utility from
+the graphviz set of tools, like this: dot foo.dot -Tsvg -o foo.svg (png or jpg
+are also possible as output format)
 .TP
 \fBGST_REGISTRY\fR
 Path of the plugin registry file. Default is
-~/.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).
+~/.cache/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
 \fBGST_REGISTRY_UPDATE\fR
 Set to "no" to force GStreamer to assume that no plugins have changed,
@@ -437,6 +443,11 @@
 this defaults to the system-installed path, and the plugins installed in the
 user's home directory
 .TP
+\fBGST_DEBUG_FILE\fR
+Set this variable to a file path to redirect all GStreamer debug
+messages to this file. If left unset, debug messages with be output
+unto the standard error.
+.TP
 \fBORC_CODE\fR
 Useful Orc environment variable. Set ORC_CODE=debug to enable debuggers
 such as gdb to create useful backtraces from Orc-generated code.  Set
diff --git a/tools/gst-launch.c b/tools/gst-launch.c
index cf46d19..61a17a4 100644
--- a/tools/gst-launch.c
+++ b/tools/gst-launch.c
@@ -17,44 +17,33 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
 
-/* FIXME: hack alert */
-#ifdef HAVE_WIN32
-#define DISABLE_FAULT_HANDLER
-#endif
-
+#include <glib.h>
 #include <stdio.h>
 #include <string.h>
 #include <signal.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifndef DISABLE_FAULT_HANDLER
+#ifdef G_OS_UNIX
+#include <glib-unix.h>
 #include <sys/wait.h>
 #endif
 #include <locale.h>             /* for LC_ALL */
 #include "tools.h"
 
-/* FIXME: This is just a temporary hack.  We should have a better
- * check for siginfo handling. */
-#ifdef SA_SIGINFO
-#define USE_SIGINFO
-#endif
-
 extern volatile gboolean glib_on_error_halt;
 
-#ifndef DISABLE_FAULT_HANDLER
+#ifdef G_OS_UNIX
 static void fault_restore (void);
 static void fault_spin (void);
-static void sigint_restore (void);
-static gboolean caught_intr = FALSE;
 #endif
 
 /* event_loop return codes */
@@ -74,11 +63,13 @@
 static gboolean is_live = FALSE;
 static gboolean waiting_eos = FALSE;
 
+G_LOCK_DEFINE_STATIC (context);
+static GstContext *context = NULL;
+
 /* convenience macro so we don't have to litter the code with if(!quiet) */
 #define PRINT if(!quiet)g_print
 
-#ifndef DISABLE_FAULT_HANDLER
-#ifndef USE_SIGINFO
+#ifdef G_OS_UNIX
 static void
 fault_handler_sighandler (int signum)
 {
@@ -102,34 +93,6 @@
   fault_spin ();
 }
 
-#else /* USE_SIGINFO */
-
-static void
-fault_handler_sigaction (int signum, siginfo_t * si, void *misc)
-{
-  fault_restore ();
-
-  /* printf is used instead of g_print(), since it's less likely to
-   * deadlock */
-  switch (si->si_signo) {
-    case SIGSEGV:
-      fprintf (stderr, "Caught SIGSEGV accessing address %p\n", si->si_addr);
-      break;
-    case SIGQUIT:
-      if (!quiet)
-        printf ("Caught SIGQUIT\n");
-      break;
-    default:
-      fprintf (stderr, "signo:  %d\n", si->si_signo);
-      fprintf (stderr, "errno:  %d\n", si->si_errno);
-      fprintf (stderr, "code:   %d\n", si->si_code);
-      break;
-  }
-
-  fault_spin ();
-}
-#endif /* USE_SIGINFO */
-
 static void
 fault_spin (void)
 {
@@ -142,7 +105,7 @@
 
   /* FIXME how do we know if we were run by libtool? */
   fprintf (stderr,
-      "Spinning.  Please run 'gdb gst-launch- " GST_API_VERSION " %d' to "
+      "Spinning.  Please run 'gdb gst-launch-" GST_API_VERSION " %d' to "
       "continue debugging, Ctrl-C to quit, or Ctrl-\\ to dump core.\n",
       (gint) getpid ());
   while (spinning)
@@ -167,17 +130,12 @@
   struct sigaction action;
 
   memset (&action, 0, sizeof (action));
-#ifdef USE_SIGINFO
-  action.sa_sigaction = fault_handler_sigaction;
-  action.sa_flags = SA_SIGINFO;
-#else
   action.sa_handler = fault_handler_sighandler;
-#endif
 
   sigaction (SIGSEGV, &action, NULL);
   sigaction (SIGQUIT, &action, NULL);
 }
-#endif /* DISABLE_FAULT_HANDLER */
+#endif /* G_OS_UNIX */
 
 #if 0
 typedef struct _GstIndexStats
@@ -503,89 +461,61 @@
   g_list_foreach (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
-sigint_handler_sighandler (int signum)
-{
-  PRINT ("Caught interrupt -- ");
-
-  /* If we were waiting for an EOS, we still want to catch
-   * the next signal to shutdown properly (and the following one
-   * will quit the program). */
-  if (waiting_eos) {
-    waiting_eos = FALSE;
-  } else {
-    sigint_restore ();
-  }
-  /* we set a flag that is checked by the mainloop, we cannot do much in the
-   * interrupt handler (no mutex or other blocking stuff) */
-  caught_intr = TRUE;
-}
-
-/* is called every 250 milliseconds (4 times a second), the interrupt handler
- * will set a flag for us. We react to this by posting a message. */
+#ifdef G_OS_UNIX
+/* As the interrupt handler is dispatched from GMainContext as a GSourceFunc
+ * handler, we can react to this by posting a message. */
 static gboolean
-check_intr (GstElement * pipeline)
+intr_handler (gpointer user_data)
 {
-  if (!caught_intr) {
-    return TRUE;
-  } else {
-    caught_intr = FALSE;
-    PRINT ("handling interrupt.\n");
+  GstElement *pipeline = (GstElement *) user_data;
 
-    /* post an application specific message */
-    gst_element_post_message (GST_ELEMENT (pipeline),
-        gst_message_new_application (GST_OBJECT (pipeline),
-            gst_structure_new ("GstLaunchInterrupt",
-                "message", G_TYPE_STRING, "Pipeline interrupted", NULL)));
+  PRINT ("handling interrupt.\n");
 
-    /* remove timeout handler */
-    return FALSE;
-  }
+  /* post an application specific message */
+  gst_element_post_message (GST_ELEMENT (pipeline),
+      gst_message_new_application (GST_OBJECT (pipeline),
+          gst_structure_new ("GstLaunchInterrupt",
+              "message", G_TYPE_STRING, "Pipeline interrupted", NULL)));
+
+  /* remove signal handler */
+  return FALSE;
 }
 
-static void
-sigint_setup (void)
+#endif /* G_OS_UNIX */
+
+static gboolean
+merge_structures (GQuark field_id, const GValue * value, gpointer user_data)
 {
-  struct sigaction action;
+  GstStructure *s2 = user_data;
 
-  memset (&action, 0, sizeof (action));
-  action.sa_handler = sigint_handler_sighandler;
+  /* Copy all fields that are not set yet */
+  if (!gst_structure_id_has_field (s2, field_id))
+    gst_structure_id_set_value (s2, field_id, value);
 
-  sigaction (SIGINT, &action, NULL);
+  return TRUE;
 }
 
-static void
-sigint_restore (void)
-{
-  struct sigaction action;
-
-  memset (&action, 0, sizeof (action));
-  action.sa_handler = SIG_DFL;
-
-  sigaction (SIGINT, &action, NULL);
-}
-#endif /* DISABLE_FAULT_HANDLER */
-
 /* returns ELR_ERROR if there was an error
  * or ELR_INTERRUPT if we caught a keyboard interrupt
  * or ELR_NO_ERROR otherwise. */
 static EventLoopResult
-event_loop (GstElement * pipeline, gboolean blocking, GstState target_state)
+event_loop (GstElement * pipeline, gboolean blocking, gboolean do_progress,
+    GstState target_state)
 {
-#ifndef DISABLE_FAULT_HANDLER
-  gulong timeout_id;
+#ifdef G_OS_UNIX
+  guint signal_watch_id;
 #endif
   GstBus *bus;
   GstMessage *message = NULL;
   EventLoopResult res = ELR_NO_ERROR;
-  gboolean buffering = FALSE;
+  gboolean buffering = FALSE, in_progress = FALSE;
+  gboolean prerolled = target_state != GST_STATE_PAUSED;
 
   bus = gst_element_get_bus (GST_ELEMENT (pipeline));
 
-#ifndef DISABLE_FAULT_HANDLER
-  timeout_id = g_timeout_add (250, (GSourceFunc) check_intr, pipeline);
+#ifdef G_OS_UNIX
+  signal_watch_id =
+      g_unix_signal_add (SIGINT, (GSourceFunc) intr_handler, pipeline);
 #endif
 
   while (TRUE) {
@@ -752,19 +682,23 @@
         if (GST_MESSAGE_SRC (message) != GST_OBJECT_CAST (pipeline))
           break;
 
-        /* ignore when we are buffering since then we mess with the states
-         * ourselves. */
-        if (buffering) {
-          PRINT (_("Prerolled, waiting for buffering to finish...\n"));
-          break;
-        }
-
         gst_message_parse_state_changed (message, &old, &new, &pending);
 
         /* if we reached the final target state, exit */
-        if (target_state == GST_STATE_PAUSED && new == target_state)
+        if (target_state == GST_STATE_PAUSED && new == target_state) {
+          prerolled = TRUE;
+          /* ignore when we are buffering since then we mess with the states
+           * ourselves. */
+          if (buffering) {
+            PRINT (_("Prerolled, waiting for buffering to finish...\n"));
+            break;
+          }
+          if (in_progress) {
+            PRINT (_("Prerolled, waiting for progress to finish...\n"));
+            break;
+          }
           goto exit;
-
+        }
         /* else not an interesting message */
         break;
       }
@@ -785,7 +719,7 @@
           if (target_state == GST_STATE_PLAYING) {
             PRINT (_("Done buffering, setting pipeline to PLAYING ...\n"));
             gst_element_set_state (pipeline, GST_STATE_PLAYING);
-          } else
+          } else if (prerolled && !in_progress)
             goto exit;
         } else {
           /* buffering busy */
@@ -833,6 +767,37 @@
         }
         break;
       }
+      case GST_MESSAGE_PROGRESS:
+      {
+        GstProgressType type;
+        gchar *code, *text;
+
+        gst_message_parse_progress (message, &type, &code, &text);
+
+        switch (type) {
+          case GST_PROGRESS_TYPE_START:
+          case GST_PROGRESS_TYPE_CONTINUE:
+            if (do_progress) {
+              in_progress = TRUE;
+              blocking = TRUE;
+            }
+            break;
+          case GST_PROGRESS_TYPE_COMPLETE:
+          case GST_PROGRESS_TYPE_CANCELED:
+          case GST_PROGRESS_TYPE_ERROR:
+            in_progress = FALSE;
+            break;
+          default:
+            break;
+        }
+        PRINT (_("Progress: (%s) %s\n"), code, text);
+        g_free (code);
+        g_free (text);
+
+        if (do_progress && !in_progress && !buffering && prerolled)
+          goto exit;
+        break;
+      }
       case GST_MESSAGE_ELEMENT:{
         if (gst_is_missing_plugin_message (message)) {
           const gchar *desc;
@@ -842,6 +807,29 @@
         }
         break;
       }
+      case GST_MESSAGE_HAVE_CONTEXT:{
+        GstContext *context_new;
+        gchar *context_str;
+
+        gst_message_parse_have_context (message, &context_new);
+
+        context_str =
+            gst_structure_to_string (gst_context_get_structure (context_new));
+        PRINT (_("Got context from element '%s': %s\n"),
+            GST_ELEMENT_NAME (GST_MESSAGE_SRC (message)), context_str);
+        g_free (context_str);
+        gst_context_unref (context_new);
+
+        /* The contexts were merged in the sync handler already, here
+         * now just print them and propagate the merged context to the
+         * complete pipeline */
+        G_LOCK (context);
+        context_new = gst_context_ref (context_new);
+        G_UNLOCK (context);
+        gst_element_set_context (pipeline, context_new);
+        gst_context_unref (context_new);
+        break;
+      }
       default:
         /* just be quiet by default */
         break;
@@ -856,8 +844,8 @@
     if (message)
       gst_message_unref (message);
     gst_object_unref (bus);
-#ifndef DISABLE_FAULT_HANDLER
-    g_source_remove (timeout_id);
+#ifdef G_OS_UNIX
+    g_source_remove (signal_watch_id);
 #endif
     return res;
   }
@@ -899,6 +887,49 @@
 
         g_free (state_transition_name);
       }
+    case GST_MESSAGE_NEED_CONTEXT:{
+      G_LOCK (context);
+      /* We could filter something here, but instead we can also just pass the complete
+       * context knowledge we have to the element. If we have what it needs, it will be
+       * happy, otherwise we can't do anything else anyway */
+      if (context)
+        gst_element_set_context (GST_ELEMENT_CAST (GST_MESSAGE_SRC (message)),
+            context);
+      G_UNLOCK (context);
+
+      break;
+    }
+    case GST_MESSAGE_HAVE_CONTEXT:{
+      GstContext *context_new;
+
+      gst_message_parse_have_context (message, &context_new);
+
+      /* Merge the contexts here as soon as possible and not
+       * in the async bus handler, in case something asks for
+       * a specific context before the async bus handler is run.
+       *
+       * Don't set the context on the complete pipeline here as it
+       * might deadlock, but do that from the async bus handler
+       * instead.
+       */
+      G_LOCK (context);
+      if (context) {
+        const GstStructure *s1;
+        GstStructure *s2;
+
+        /* Merge structures */
+        context = gst_context_make_writable (context);
+        s1 = gst_context_get_structure (context_new);
+        s2 = gst_context_writable_structure (context);
+        gst_structure_foreach (s1, merge_structures, s2);
+      } else {
+        /* Copy over the context */
+        gst_context_replace (&context, context_new);
+      }
+      gst_context_unref (context_new);
+      G_UNLOCK (context);
+      break;
+    }
     default:
       break;
   }
@@ -981,11 +1012,9 @@
 
   gst_tools_print_version ();
 
-#ifndef DISABLE_FAULT_HANDLER
+#ifdef G_OS_UNIX
   if (!no_fault)
     fault_setup ();
-
-  sigint_setup ();
 #endif
 
   /* make a null-terminated version of argv */
@@ -1064,7 +1093,7 @@
       case GST_STATE_CHANGE_FAILURE:
         g_printerr (_("ERROR: Pipeline doesn't want to pause.\n"));
         res = -1;
-        event_loop (pipeline, FALSE, GST_STATE_VOID_PENDING);
+        event_loop (pipeline, FALSE, FALSE, GST_STATE_VOID_PENDING);
         goto end;
       case GST_STATE_CHANGE_NO_PREROLL:
         PRINT (_("Pipeline is live and does not need PREROLL ...\n"));
@@ -1072,7 +1101,7 @@
         break;
       case GST_STATE_CHANGE_ASYNC:
         PRINT (_("Pipeline is PREROLLING ...\n"));
-        caught_error = event_loop (pipeline, TRUE, GST_STATE_PAUSED);
+        caught_error = event_loop (pipeline, TRUE, TRUE, GST_STATE_PAUSED);
         if (caught_error) {
           g_printerr (_("ERROR: pipeline doesn't want to preroll.\n"));
           goto end;
@@ -1084,7 +1113,7 @@
         break;
     }
 
-    caught_error = event_loop (pipeline, FALSE, GST_STATE_PLAYING);
+    caught_error = event_loop (pipeline, FALSE, TRUE, GST_STATE_PLAYING);
 
     if (caught_error) {
       g_printerr (_("ERROR: pipeline doesn't want to preroll.\n"));
@@ -1111,7 +1140,7 @@
       }
 
       tfthen = gst_util_get_timestamp ();
-      caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
+      caught_error = event_loop (pipeline, TRUE, FALSE, GST_STATE_PLAYING);
       if (eos_on_shutdown && caught_error != ELR_NO_ERROR) {
         gboolean ignore_errors;
 
@@ -1127,7 +1156,7 @@
         PRINT (_("Waiting for EOS...\n"));
 
         while (TRUE) {
-          caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
+          caught_error = event_loop (pipeline, TRUE, FALSE, GST_STATE_PLAYING);
 
           if (caught_error == ELR_NO_ERROR) {
             /* we got EOS */
@@ -1149,7 +1178,8 @@
 
       diff = GST_CLOCK_DIFF (tfthen, tfnow);
 
-      PRINT (_("Execution ended after %" G_GINT64_FORMAT " ns.\n"), diff);
+      PRINT (_("Execution ended after %" GST_TIME_FORMAT "\n"),
+          GST_TIME_ARGS (diff));
     }
 
     PRINT (_("Setting pipeline to PAUSED ...\n"));
@@ -1178,6 +1208,7 @@
 
   PRINT (_("Freeing pipeline ...\n"));
   gst_object_unref (pipeline);
+  gst_context_replace (&context, NULL);
 
   gst_deinit ();
 
diff --git a/tools/gst-typefind.c b/tools/gst-typefind.c
index 4cab8c4..a6b42aa 100644
--- a/tools/gst-typefind.c
+++ b/tools/gst-typefind.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tools/tools.h b/tools/tools.h
index 1d4e0d4..6bed5ac 100644
--- a/tools/tools.h
+++ b/tools/tools.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/win32/common/config.h b/win32/common/config.h
index d620210..b0fe69d 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -169,12 +169,25 @@
 /* Define if you have the iconv() function and it works. */
 #undef HAVE_ICONV
 
+/* Define to 1 if the system has the type `intmax_t'. */
+#undef HAVE_INTMAX_T
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and
+   declares uintmax_t. */
+#undef HAVE_INTTYPES_H_WITH_UINTMAX
+
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
+/* Define to 1 if the system has the type long long */
+#undef HAVE_LONG_LONG
+
+/* Define to 1 if the system has the type `long long int'. */
+#undef HAVE_LONG_LONG_INT
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
@@ -205,9 +218,6 @@
 /* defined if the compiler implements __PRETTY_FUNCTION__ */
 #undef HAVE_PRETTY_FUNCTION
 
-/* Defined if we have printf specifier extensions available */
-#undef HAVE_PRINTF_EXTENSION
-
 /* Define to 1 if you have the <process.h> header file. */
 #define HAVE_PROCESS_H 1
 
@@ -220,21 +230,22 @@
 /* Have PTHREAD_PRIO_INHERIT. */
 #undef HAVE_PTHREAD_PRIO_INHERIT
 
+/* Define to 1 if the system has the type `ptrdiff_t'. */
+#undef HAVE_PTRDIFF_T
+
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
-/* Define to 1 if you have the `register_printf_function' function. */
-#undef HAVE_REGISTER_PRINTF_FUNCTION
-
-/* Define to 1 if you have the `register_printf_specifier' function. */
-#undef HAVE_REGISTER_PRINTF_SPECIFIER
-
 /* Define to 1 if you have the `sigaction' function. */
 #undef HAVE_SIGACTION
 
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
+/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares
+   uintmax_t. */
+#undef HAVE_STDINT_H_WITH_UINTMAX
+
 /* Define to 1 if you have the <stdio_ext.h> header file. */
 #undef HAVE_STDIO_EXT_H
 
@@ -292,6 +303,9 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define to 1 if the system has the type `unsigned long long int'. */
+#undef HAVE_UNSIGNED_LONG_LONG_INT
+
 /* Define if valgrind should be used */
 #undef HAVE_VALGRIND
 
@@ -343,7 +357,7 @@
 #define PACKAGE_NAME "GStreamer"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 1.0.8"
+#define PACKAGE_STRING "GStreamer 1.1.2"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gstreamer"
@@ -352,7 +366,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.8"
+#define PACKAGE_VERSION "1.1.2"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -390,7 +404,7 @@
 #undef USE_POISONING
 
 /* Version number of package */
-#define VERSION "1.0.8"
+#define VERSION "1.1.2"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -420,3 +434,10 @@
 
 /* We need at least WinXP SP2 for __stat64 */
 #undef __MSVCRT_VERSION__
+
+/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
+   not define. */
+#undef intmax_t
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
diff --git a/win32/common/gstconfig.h b/win32/common/gstconfig.h
index af3b00b..20cd084 100644
--- a/win32/common/gstconfig.h
+++ b/win32/common/gstconfig.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstconfig
diff --git a/win32/common/gstenumtypes.c b/win32/common/gstenumtypes.c
index f5c7776..9a54a03 100644
--- a/win32/common/gstenumtypes.c
+++ b/win32/common/gstenumtypes.c
@@ -108,6 +108,7 @@
     {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"},
+    {C_FLAGS (GST_BUFFER_COPY_DEEP), "GST_BUFFER_COPY_DEEP", "deep"},
     {0, NULL, NULL}
   };
 
@@ -598,6 +599,7 @@
     {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_CONTEXT), "GST_EVENT_CONTEXT", "context"},
     {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"},
@@ -648,6 +650,27 @@
   return (GType) id;
 }
 
+GType
+gst_stream_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_STREAM_FLAG_NONE), "GST_STREAM_FLAG_NONE", "none"},
+    {C_FLAGS (GST_STREAM_FLAG_SPARSE), "GST_STREAM_FLAG_SPARSE", "sparse"},
+    {C_FLAGS (GST_STREAM_FLAG_SELECT), "GST_STREAM_FLAG_SELECT", "select"},
+    {C_FLAGS (GST_STREAM_FLAG_UNSELECT), "GST_STREAM_FLAG_UNSELECT",
+        "unselect"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstStreamFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gstformat.h" */
 GType
 gst_format_get_type (void)
@@ -820,6 +843,10 @@
     {C_FLAGS (GST_MESSAGE_RESET_TIME), "GST_MESSAGE_RESET_TIME", "reset-time"},
     {C_FLAGS (GST_MESSAGE_STREAM_START), "GST_MESSAGE_STREAM_START",
         "stream-start"},
+    {C_FLAGS (GST_MESSAGE_NEED_CONTEXT), "GST_MESSAGE_NEED_CONTEXT",
+        "need-context"},
+    {C_FLAGS (GST_MESSAGE_HAVE_CONTEXT), "GST_MESSAGE_HAVE_CONTEXT",
+        "have-context"},
     {C_FLAGS (GST_MESSAGE_ANY), "GST_MESSAGE_ANY", "any"},
     {0, NULL, NULL}
   };
@@ -942,6 +969,10 @@
         "zero-prefixed"},
     {C_FLAGS (GST_MEMORY_FLAG_ZERO_PADDED), "GST_MEMORY_FLAG_ZERO_PADDED",
         "zero-padded"},
+    {C_FLAGS (GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS),
+        "GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS", "physically-contiguous"},
+    {C_FLAGS (GST_MEMORY_FLAG_NOT_MAPPABLE), "GST_MEMORY_FLAG_NOT_MAPPABLE",
+        "not-mappable"},
     {C_FLAGS (GST_MEMORY_FLAG_LAST), "GST_MEMORY_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
@@ -1442,6 +1473,7 @@
     {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_CONTEXT), "GST_QUERY_CONTEXT", "context"},
     {0, NULL, NULL}
   };
 
@@ -1482,6 +1514,8 @@
         "seekable"},
     {C_FLAGS (GST_SCHEDULING_FLAG_SEQUENTIAL), "GST_SCHEDULING_FLAG_SEQUENTIAL",
         "sequential"},
+    {C_FLAGS (GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED),
+        "GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED", "bandwidth-limited"},
     {0, NULL, NULL}
   };
 
diff --git a/win32/common/gstenumtypes.h b/win32/common/gstenumtypes.h
index c15314f..d015fa0 100644
--- a/win32/common/gstenumtypes.h
+++ b/win32/common/gstenumtypes.h
@@ -81,6 +81,8 @@
 #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_flags_get_type (void);
+#define GST_TYPE_STREAM_FLAGS (gst_stream_flags_get_type())
 
 /* enumerations from "gstformat.h" */
 GType gst_format_get_type (void);
diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h
index 9090e55..81a4eab 100644
--- a/win32/common/gstversion.h
+++ b/win32/common/gstversion.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstversion
@@ -51,13 +51,13 @@
  *
  * The minor version of GStreamer at compile time:
  */
-#define GST_VERSION_MINOR (0)
+#define GST_VERSION_MINOR (1)
 /**
  * GST_VERSION_MICRO:
  *
  * The micro version of GStreamer at compile time:
  */
-#define GST_VERSION_MICRO (8)
+#define GST_VERSION_MICRO (2)
 /**
  * GST_VERSION_NANO:
  *
diff --git a/win32/common/libgstbase.def b/win32/common/libgstbase.def
index bc52be4..7044ad5 100644
--- a/win32/common/libgstbase.def
+++ b/win32/common/libgstbase.def
@@ -10,7 +10,9 @@
 	gst_adapter_masked_scan_uint32_peek
 	gst_adapter_new
 	gst_adapter_prev_dts
+	gst_adapter_prev_dts_at_offset
 	gst_adapter_prev_pts
+	gst_adapter_prev_pts_at_offset
 	gst_adapter_push
 	gst_adapter_take
 	gst_adapter_take_buffer
@@ -29,15 +31,18 @@
 	gst_base_parse_set_duration
 	gst_base_parse_set_frame_rate
 	gst_base_parse_set_has_timing_info
+	gst_base_parse_set_infer_ts
 	gst_base_parse_set_latency
 	gst_base_parse_set_min_frame_size
 	gst_base_parse_set_passthrough
 	gst_base_parse_set_pts_interpolation
 	gst_base_parse_set_syncable
+	gst_base_parse_set_ts_at_offset
 	gst_base_sink_do_preroll
 	gst_base_sink_get_blocksize
 	gst_base_sink_get_last_sample
 	gst_base_sink_get_latency
+	gst_base_sink_get_max_bitrate
 	gst_base_sink_get_max_lateness
 	gst_base_sink_get_render_delay
 	gst_base_sink_get_sync
@@ -51,6 +56,7 @@
 	gst_base_sink_set_async_enabled
 	gst_base_sink_set_blocksize
 	gst_base_sink_set_last_sample_enabled
+	gst_base_sink_set_max_bitrate
 	gst_base_sink_set_max_lateness
 	gst_base_sink_set_qos_enabled
 	gst_base_sink_set_render_delay
@@ -238,7 +244,28 @@
 	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_peek
+	gst_data_queue_pop
+	gst_data_queue_push
+	gst_data_queue_set_flushing
 	gst_push_src_get_type
+	gst_queue_array_drop_element
+	gst_queue_array_find
+	gst_queue_array_free
+	gst_queue_array_get_length
+	gst_queue_array_is_empty
+	gst_queue_array_new
+	gst_queue_array_peek_head
+	gst_queue_array_pop_head
+	gst_queue_array_push_tail
 	gst_type_find_helper
 	gst_type_find_helper_for_buffer
 	gst_type_find_helper_for_data
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index 15eac39..4f89ad1 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -5,6 +5,7 @@
 	GST_CAT_CALL_TRACE DATA
 	GST_CAT_CAPS DATA
 	GST_CAT_CLOCK DATA
+	GST_CAT_CONTEXT DATA
 	GST_CAT_DEFAULT DATA
 	GST_CAT_ELEMENT_PADS DATA
 	GST_CAT_ERROR_SYSTEM DATA
@@ -33,6 +34,9 @@
 	_gst_buffer_list_type DATA
 	_gst_buffer_type DATA
 	_gst_caps_any DATA
+	_gst_caps_features_any DATA
+	_gst_caps_features_memory_system_memory DATA
+	_gst_caps_features_type DATA
 	_gst_caps_none DATA
 	_gst_caps_type DATA
 	_gst_debug_category_new
@@ -62,6 +66,7 @@
 	gst_allocator_get_type
 	gst_allocator_register
 	gst_allocator_set_default
+	gst_allocator_sysmem_get_type
 	gst_atomic_queue_get_type
 	gst_atomic_queue_length
 	gst_atomic_queue_new
@@ -97,11 +102,13 @@
 	gst_buffer_copy_into
 	gst_buffer_copy_region
 	gst_buffer_extract
+	gst_buffer_extract_dup
 	gst_buffer_fill
 	gst_buffer_find_memory
 	gst_buffer_flags_get_type
 	gst_buffer_foreach_meta
 	gst_buffer_get_all_memory
+	gst_buffer_get_max_memory
 	gst_buffer_get_memory
 	gst_buffer_get_memory_range
 	gst_buffer_get_meta
@@ -187,11 +194,36 @@
 	gst_bus_timed_pop_filtered
 	gst_caps_append
 	gst_caps_append_structure
+	gst_caps_append_structure_full
 	gst_caps_can_intersect
 	gst_caps_copy_nth
+	gst_caps_features_add
+	gst_caps_features_add_id
+	gst_caps_features_contains
+	gst_caps_features_contains_id
+	gst_caps_features_copy
+	gst_caps_features_free
+	gst_caps_features_from_string
+	gst_caps_features_get_nth
+	gst_caps_features_get_nth_id
+	gst_caps_features_get_size
+	gst_caps_features_get_type
+	gst_caps_features_is_any
+	gst_caps_features_is_equal
+	gst_caps_features_new
+	gst_caps_features_new_any
+	gst_caps_features_new_empty
+	gst_caps_features_new_id
+	gst_caps_features_new_id_valist
+	gst_caps_features_new_valist
+	gst_caps_features_remove
+	gst_caps_features_remove_id
+	gst_caps_features_set_parent_refcount
+	gst_caps_features_to_string
 	gst_caps_fixate
 	gst_caps_flags_get_type
 	gst_caps_from_string
+	gst_caps_get_features
 	gst_caps_get_size
 	gst_caps_get_structure
 	gst_caps_get_type
@@ -207,8 +239,10 @@
 	gst_caps_is_strictly_equal
 	gst_caps_is_subset
 	gst_caps_is_subset_structure
+	gst_caps_is_subset_structure_full
 	gst_caps_merge
 	gst_caps_merge_structure
+	gst_caps_merge_structure_full
 	gst_caps_new_any
 	gst_caps_new_empty
 	gst_caps_new_empty_simple
@@ -217,6 +251,7 @@
 	gst_caps_new_simple
 	gst_caps_normalize
 	gst_caps_remove_structure
+	gst_caps_set_features
 	gst_caps_set_simple
 	gst_caps_set_simple_valist
 	gst_caps_set_value
@@ -267,6 +302,10 @@
 	gst_clock_single_shot_id_reinit
 	gst_clock_type_get_type
 	gst_clock_unadjust_unlocked
+	gst_context_get_structure
+	gst_context_get_type
+	gst_context_new
+	gst_context_writable_structure
 	gst_control_binding_get_g_value_array
 	gst_control_binding_get_type
 	gst_control_binding_get_value
@@ -339,8 +378,8 @@
 	gst_debug_set_colored
 	gst_debug_set_default_threshold
 	gst_debug_set_threshold_for_name
+	gst_debug_set_threshold_from_string
 	gst_debug_unset_threshold_for_name
-	gst_default_allocator_get_type
 	gst_deinit
 	gst_double_range_get_type
 	gst_element_abort_state
@@ -381,6 +420,7 @@
 	gst_element_get_clock
 	gst_element_get_compatible_pad
 	gst_element_get_compatible_pad_template
+	gst_element_get_context
 	gst_element_get_factory
 	gst_element_get_request_pad
 	gst_element_get_start_time
@@ -417,6 +457,7 @@
 	gst_element_set_base_time
 	gst_element_set_bus
 	gst_element_set_clock
+	gst_element_set_context
 	gst_element_set_locked_state
 	gst_element_set_start_time
 	gst_element_set_state
@@ -434,6 +475,7 @@
 	gst_event_has_name
 	gst_event_new_buffer_size
 	gst_event_new_caps
+	gst_event_new_context
 	gst_event_new_custom
 	gst_event_new_eos
 	gst_event_new_flush_start
@@ -454,6 +496,7 @@
 	gst_event_new_toc_select
 	gst_event_parse_buffer_size
 	gst_event_parse_caps
+	gst_event_parse_context
 	gst_event_parse_flush_stop
 	gst_event_parse_gap
 	gst_event_parse_latency
@@ -463,11 +506,13 @@
 	gst_event_parse_segment_done
 	gst_event_parse_sink_message
 	gst_event_parse_step
+	gst_event_parse_stream_flags
 	gst_event_parse_stream_start
 	gst_event_parse_tag
 	gst_event_parse_toc
 	gst_event_parse_toc_select
 	gst_event_set_seqnum
+	gst_event_set_stream_flags
 	gst_event_type_flags_get_type
 	gst_event_type_get_flags
 	gst_event_type_get_name
@@ -488,6 +533,7 @@
 	gst_formats_contains
 	gst_fraction_get_type
 	gst_fraction_range_get_type
+	gst_g_thread_get_type
 	gst_ghost_pad_activate_mode_default
 	gst_ghost_pad_construct
 	gst_ghost_pad_get_target
@@ -503,6 +549,7 @@
 	gst_init_get_option_group
 	gst_int64_range_get_type
 	gst_int_range_get_type
+	gst_is_caps_features
 	gst_is_initialized
 	gst_iterator_copy
 	gst_iterator_filter
@@ -530,12 +577,15 @@
 	gst_memory_get_type
 	gst_memory_init
 	gst_memory_is_span
+	gst_memory_is_type
 	gst_memory_make_mapped
 	gst_memory_map
 	gst_memory_new_wrapped
 	gst_memory_resize
 	gst_memory_share
 	gst_memory_unmap
+	gst_message_add_context_type
+	gst_message_get_n_context_types
 	gst_message_get_seqnum
 	gst_message_get_stream_status_object
 	gst_message_get_structure
@@ -552,8 +602,10 @@
 	gst_message_new_element
 	gst_message_new_eos
 	gst_message_new_error
+	gst_message_new_have_context
 	gst_message_new_info
 	gst_message_new_latency
+	gst_message_new_need_context
 	gst_message_new_new_clock
 	gst_message_new_progress
 	gst_message_new_qos
@@ -577,8 +629,10 @@
 	gst_message_parse_clock_lost
 	gst_message_parse_clock_provide
 	gst_message_parse_error
+	gst_message_parse_have_context
 	gst_message_parse_info
 	gst_message_parse_new_clock
+	gst_message_parse_nth_context_type
 	gst_message_parse_progress
 	gst_message_parse_qos
 	gst_message_parse_qos_stats
@@ -678,6 +732,7 @@
 	gst_pad_get_peer
 	gst_pad_get_range
 	gst_pad_get_sticky_event
+	gst_pad_get_stream_id
 	gst_pad_get_type
 	gst_pad_has_current_caps
 	gst_pad_is_active
@@ -742,6 +797,7 @@
 	gst_pad_start_task
 	gst_pad_sticky_events_foreach
 	gst_pad_stop_task
+	gst_pad_store_sticky_event
 	gst_pad_template_flags_get_type
 	gst_pad_template_get_caps
 	gst_pad_template_get_type
@@ -783,6 +839,7 @@
 	gst_plugin_error_quark
 	gst_plugin_feature_check_version
 	gst_plugin_feature_get_plugin
+	gst_plugin_feature_get_plugin_name
 	gst_plugin_feature_get_rank
 	gst_plugin_feature_get_type
 	gst_plugin_feature_list_copy
@@ -854,12 +911,14 @@
 	gst_query_add_allocation_param
 	gst_query_add_allocation_pool
 	gst_query_add_buffering_range
+	gst_query_add_context_type
 	gst_query_add_scheduling_mode
 	gst_query_find_allocation_meta
 	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_context_types
 	gst_query_get_n_scheduling_modes
 	gst_query_get_structure
 	gst_query_get_type
@@ -869,6 +928,7 @@
 	gst_query_new_allocation
 	gst_query_new_buffering
 	gst_query_new_caps
+	gst_query_new_context
 	gst_query_new_convert
 	gst_query_new_custom
 	gst_query_new_drain
@@ -888,6 +948,7 @@
 	gst_query_parse_buffering_stats
 	gst_query_parse_caps
 	gst_query_parse_caps_result
+	gst_query_parse_context
 	gst_query_parse_convert
 	gst_query_parse_duration
 	gst_query_parse_latency
@@ -896,6 +957,7 @@
 	gst_query_parse_nth_allocation_param
 	gst_query_parse_nth_allocation_pool
 	gst_query_parse_nth_buffering_range
+	gst_query_parse_nth_context_type
 	gst_query_parse_nth_format
 	gst_query_parse_nth_scheduling_mode
 	gst_query_parse_position
@@ -904,11 +966,14 @@
 	gst_query_parse_segment
 	gst_query_parse_uri
 	gst_query_remove_nth_allocation_meta
+	gst_query_remove_nth_allocation_param
+	gst_query_remove_nth_allocation_pool
 	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_context
 	gst_query_set_convert
 	gst_query_set_duration
 	gst_query_set_formats
@@ -986,6 +1051,7 @@
 	gst_static_pad_template_get_type
 	gst_stream_error_get_type
 	gst_stream_error_quark
+	gst_stream_flags_get_type
 	gst_stream_status_type_get_type
 	gst_structure_can_intersect
 	gst_structure_change_type_get_type
@@ -1036,6 +1102,7 @@
 	gst_structure_n_fields
 	gst_structure_new
 	gst_structure_new_empty
+	gst_structure_new_from_string
 	gst_structure_new_id
 	gst_structure_new_id_empty
 	gst_structure_new_valist
@@ -1230,6 +1297,7 @@
 	gst_util_uint64_scale_int_ceil
 	gst_util_uint64_scale_int_round
 	gst_util_uint64_scale_round
+	gst_value_array_append_and_take_value
 	gst_value_array_append_value
 	gst_value_array_get_size
 	gst_value_array_get_type
@@ -1246,6 +1314,7 @@
 	gst_value_fraction_subtract
 	gst_value_get_bitmask
 	gst_value_get_caps
+	gst_value_get_caps_features
 	gst_value_get_double_range_max
 	gst_value_get_double_range_min
 	gst_value_get_fraction_denominator
@@ -1263,6 +1332,7 @@
 	gst_value_intersect
 	gst_value_is_fixed
 	gst_value_is_subset
+	gst_value_list_append_and_take_value
 	gst_value_list_append_value
 	gst_value_list_concat
 	gst_value_list_get_size
@@ -1274,6 +1344,7 @@
 	gst_value_serialize
 	gst_value_set_bitmask
 	gst_value_set_caps
+	gst_value_set_caps_features
 	gst_value_set_double_range
 	gst_value_set_fraction
 	gst_value_set_fraction_range