diff --git a/ChangeLog b/ChangeLog
index 14be091..01605f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,729 @@
-=== release 0.11.91 ===
+=== release 0.11.92 ===
 
-2012-05-13  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2012-06-07  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 0.11.91, "I will give you five magic beans\!"
+	  releasing 0.11.92, "High Hopes"
+
+2012-06-06 18:11:13 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	  registry: We name the registry after the target cpu
+	  And not the host cpu
+	  Conflicts:
+	  gst/gstregistry.c
+
+2012-06-06 18:18:18 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 1fab359 to 03a0e57
+
+2012-06-06 15:45:11 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gsttoc.c:
+	  tests: fix unit test after event change
+	  Someone forgot to run make check before pushing...
+
+2012-06-06 11:06:32 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* libs/gst/base/gstadapter.c:
+	  gstadapter: Align the comment description with public api instead of internal one.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677536
+
+2012-06-06 15:29:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: fix pad cleanup in dispose
+	  In the dispose handler we first need to release all the request pads and then
+	  remove the remaining pads. This is because it is possible that releasing the
+	  request pad might also cleanly remove some of the other dynamic pads, like
+	  what rtpsession does.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=677436
+
+2012-06-06 14:14:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	  event: Don't make the TOC event a multi-sticky event
+	  Elements are supposed to merge upstream events.
+
+2009-10-13 17:24:34 +0200  Havard Graff <havard.graff@tandberg.com>
+
+	* gst/gstpad.c:
+	  Make sure that unlinked pads do not cause a return false on latency events.
+	  Context: Latency configuration should not be
+	  messed up because of not-linked pads. In general,
+	  one return FALSE on latency distribution causes
+	  the "overall" pipeline latency configuration to
+	  fail. This shows up as noise in logs (warning).
+	  Conflicts:
+	  gst/gstpad.c
+
+2012-06-06 12:52:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* libs/gst/base/gstbaseparse.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gsttoc.c:
+	* tests/check/gst/gstutils.c:
+	  event: add name to sticky_multi events
+	  The name of the event is used to store multiple sticky events of a certain type
+	  on a pad.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676859
+
+2012-06-06 09:59:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/design/part-negotiation.txt:
+	  design: Also mention that the order of the filter caps is important
+
+2012-06-06 09:15:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: improve docs
+
+2012-06-06 09:13:11 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: only serialized events can't pass after EOS
+	  Only serialized events can't be sent on pads that are EOS. Otherwise a seek
+	  event would be refused as well.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677520
+
+2012-06-05 14:38:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-negotiation.txt:
+	  docs: talk about the filter caps
+
+2012-06-02 16:44:59 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gsttag.c:
+	  tests: add unit test for tag list writability
+
+2012-06-02 16:38:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstmessage.c:
+	* tests/check/gst/gstmessage.c:
+	* tests/check/gst/gsttag.c:
+	* tests/check/gst/gsttagsetter.c:
+	* tests/examples/metadata/read-metadata.c:
+	  gst_tag_list_free -> gst_tag_list_unref
+
+2012-06-02 16:29:45 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: expand taglist section in porting-to-0.11 docs a bit
+
+2012-06-05 11:28:38 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-negotiation.txt:
+	  docs: update negotiation docs
+	  Mention that the acceptcaps query does not have to be recursive
+
+2012-06-05 09:40:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: remove obsolete caps code
+
+2012-06-05 09:39:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: improve debug
+
+2012-06-05 09:21:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstutils.c:
+	  tests: fix unit test
+	  Before we can change the caps on a sinkpad with fixed caps we need to unfix the
+	  pad caps.
+
+2012-06-05 09:10:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: don't pause task on EOS
+	  Elements should not rely on core to pause tasks on EOS.
+
+2012-06-05 09:00:01 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix event type check
+
+2012-06-04 16:19:26 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix 'res' may be used uninitialized in this function
+
+2012-06-04 13:00:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/funnel.c:
+	  funnel: Fix unit test
+
+2012-06-04 12:57:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/valve.c:
+	  valve: Fix unit test
+
+2012-06-04 11:46:42 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: Don't accept any buffers or events after EOS
+
+2012-06-04 11:13:02 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: also perform state processing upon non-OK return
+	  ... since processing might still continue (if e.g. NOT_LINKED)
+	  and then proper state (e.g. offset) needs to be maintained
+	  (e.g. to arrange for a new frame setup).
+
+2012-06-04 11:25:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Always return errors for EOS events immediately
+	  For non-EOS events things will error out later during data
+	  flow but after EOS events no data flow is happening.
+	  See bug #677340.
+
+2012-06-04 09:27:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Only forward caps events to a pad if it accepts the caps
+	  Fixes bug #677335.
+
+2012-06-02 20:01:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  Revert "pad: Return FALSE if pushing of sticky events failed"
+	  This reverts commit 0f924b922c712059d7752fc15b832551745ff27e.
+	  Sticky events should always return TRUE when pushing and will
+	  only cause failures during data flow later.
+
+2012-06-02 16:18:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix variable-set-but-not-used compiler warning
+
+2012-06-02 16:55:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: If pushing a sticky event failed, make sure to at least push any pending EOS events
+	  Otherwise a pipeline where one sticky event fails to be sent will
+	  never forward EOS events downstream. This can cause pipelines to
+	  wait forever for EOS on errors.
+
+2012-06-02 16:02:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Return FALSE if pushing of sticky events failed
+	  Instead of just ignoring failure of pushing sticky events and
+	  returning TRUE as if everything is fine.
+
+2012-06-01 16:34:16 +0200  Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Correctly get current running time when syncing to the segment information
+	  Fixes bug #677263.
+
+2012-06-01 10:28:30 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From f1b5a96 to 1fab359
+
+2012-05-25 22:58:57 -0500  Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+	* tests/check/elements/funnel.c:
+	  tests: Add funnel test to cover EOS event handling
+	  Ported from f3b2dd6f in the 0.10 branch
+
+2012-05-25 22:52:33 -0500  Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Only emit EOS event if all sinkpads have received one
+	  If multiple sources are plugged into the funnel and one of the
+	  sources emits an EOS, that event is propogated through the funnel
+	  even though other sources connected to the funnel may still be
+	  pushing data. This patch waits to send an EOS event until the
+	  funnel has received an EOS event on each sinkpad.
+	  Ported from d397ea97 in 0.10 branch.
+
+2012-05-29 19:24:25 -0500  Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+	* tests/check/elements/funnel.c:
+	  tests: Fix invalid read when releasing request pads in funnel tests
+
+2012-05-29 19:23:07 -0500  Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Fix buffer leak
+
+2012-05-31 17:45:29 +0200  Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Don't try to sync on the segment if it has no TIME format
+	  ...and wait until it is actually configured and has a format before
+	  trying to sync.
+
+2012-05-31 17:03:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: No need to broadcast the signal in flush-stop
+	  Everything stopped at this point already.
+	  Conflicts:
+	  plugins/elements/gstinputselector.c
+
+2012-05-31 13:07:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 92b7266 to f1b5a96
+
+2012-05-31 10:10:41 +0100  Bastien Nocera <hadess@hadess.net>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Fix property name in the docs
+	  temp-template, not temp-tmpl
+	  https://bugzilla.gnome.org/show_bug.cgi?id=677170
+
+2012-05-28 14:29:00 -0300  Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstinputselector.h:
+	  inputselector: Properly sync when changing streams
+	  This adds properties to use the clock time for deciding when
+	  to drop buffers for inactive pads and a property to buffer all
+	  not rendered buffers for the active pad to allow pad switching
+	  without losing any buffers at all.
+	  Conflicts:
+	  plugins/elements/gstinputselector.c
+
+2012-05-30 12:44:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From ec1c4a8 to 92b7266
+
+2012-05-30 11:18:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 3429ba6 to ec1c4a8
+
+2012-05-29 08:48:36 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	  taglist: add guards to make sure taglist is writable when modifying it
+	  Now that taglists are refcounted we need to check if they're
+	  writable before modifying them.
+
+2012-05-28 23:54:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* win32/common/libgstreamer.def:
+	  taglist: avoid unnecessary string copying when registering tags
+	  Add gst_tag_register_static() - no need to copy all those
+	  string constants, whether translated or not.
+	  API: gst_tag_register_static()
+
+2012-05-28 00:08:56 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.c:
+	  check: check for GLib-GIO criticals as well
+
+2012-05-28 00:08:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttagsetter.c:
+	* gst/gsttoc.c:
+	* plugins/elements/gstinputselector.c:
+	* tools/gst-launch.c:
+	  gst_tag_list_free() -> gst_tag_list_unref()
+
+2012-05-27 23:58:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstcompat.h:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* tests/check/gst/gsttag.c:
+	* win32/common/libgstreamer.def:
+	  taglist: make GstTagList a GstMiniObject
+	  Which adds refcounting support, and other things.
+
+2012-05-27 20:31:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: log freeing of caps at same log level as creation, i.e. TRACE
+
+2012-05-26 11:37:49 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstmessage.c:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	  message, event: update for tag lists not being structures any more
+
+2012-05-21 00:31:29 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: make proper struct not just a GstStructure
+
+2012-05-25 10:28:40 +0200  Josep Torra <josep@fluendo.com>
+
+	* gst/gst.c:
+	* gst/gstdebugutils.c:
+	  debugutils: Fix static linking on OS X
+	  The linking behaviour of external variables that are not initialized
+	  in the compilation unit where they are defined is undefined. On OS X
+	  this causes a linking failure when statically linking GStreamer.
+
+2012-05-25 09:17:17 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* scripts/five-bugs-a-day.pl:
+	  five-bugs-a-day: use splice to trim the bug list
+
+2012-05-24 23:30:29 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstfakesrc.h:
+	  fakesrc: put byte position rather than buffer count into GST_BUFFER_OFFSET
+	  If we're sending a segment in BYTE format, the offset
+	  should be in bytes as well.
+
+2012-05-24 11:48:19 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* docs/design/part-segments.txt:
+	  docs: fix a typo in part-segments.txt
+
+2012-05-24 11:02:53 +0200  Brian Cameron <brian.cameron at oracle.com>
+
+	* libs/gst/base/gsttypefindhelper.c:
+	  typefind: fix prototype of helper_find_suggest
+	  The proto for helper_find_suggest has a different argument than the actual
+	  function in the same file has.  This causes the Sun Studio compiler to fail.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676624
+	  Conflicts:
+	  libs/gst/base/gsttypefindhelper.c
+
+2012-05-24 08:07:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* scripts/five-bugs-a-day.pl:
+	  scripts: remove a stray print from debugging and fix up cron entry docs
+
+2012-05-24 09:03:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* scripts/five-bugs-a-day.pl:
+	  five-bugs-a-day: Make #! to perl more portable
+
+2012-05-24 07:56:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* scripts/five-bugs-a-day.pl:
+	  scripts: remove fixed 'known issue' from five-bugs-a-day script
+	  This was with commas actually, and should be fixed now.
+
+2012-05-24 07:54:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* scripts/five-bugs-a-day.pl:
+	  scripts: add five-bugs-a-day script
+	  Cron fodder.
+
+2012-05-22 14:27:48 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* tests/examples/helloworld/helloworld.c:
+	  tests: rename playbin2 to playbin and adding some debug info
+
+2012-05-22 18:27:36 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst/gsturi.c:
+	  uri: Add some debug statements
+
+2012-05-22 13:51:47 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: Update defs file
+
+2012-05-21 09:14:39 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  bin: port unit test to 0.11
+
+2012-05-21 15:14:51 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstelement.c:
+	* gst/gstutils.c:
+	  docs: improve the seeking docs more.
+	  Also mention it on _element_seek{,_simple} and be more precise why it happens.
+
+2012-05-21 13:17:21 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstelement.c:
+	* gst/gstevent.c:
+	  docs: fix a typo and clarify event handling a bit more
+	  Tell about async_done messages for some events and review the _event_new_seek
+	  docs.
+
+2012-05-18 15:04:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	* tests/check/gst/gstbin.c:
+	  bin: try harder to avoid state changes in wrong direction
+	  When the bin does an upward state change, try to avoid doing a downward state
+	  change on the child and vice versa.
+	  Add some more unit tests for this fix.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=621833
+
+2012-05-18 20:11:55 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* tools/gst-launch.c:
+	  gst-launch: fix -c, --toc message
+
+2012-05-21 01:48:29 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	  toc: Add boxed types for GstToc and GstTocEntry
+
+2012-05-20 18:23:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	  toc: fix type of pad parameter to gst_toc_entry_new_with_pad()
+
+2012-05-20 18:16:45 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttoc.c:
+	  toc: use correct GType for tag lists
+
+2012-05-20 18:06:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttoc.c:
+	  toc: avoid unnecessary GValue acrobatics
+
+2012-05-20 17:48:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gst_private.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gsttoc.c:
+	  toc: use global quark table
+
+2012-05-20 17:10:24 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstquark.c:
+	  toc: fix internal TOC query and event structure names
+	  Make them consistent with all the other query and event names.
+
+2012-05-19 17:24:52 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstpluginfeature.h:
+	  pluginfeature: make GstPluginFeature structure private
+	  Make GstPluginFeature opaque until we have time to
+	  clean it up a little. Only GstElementFactory and
+	  GstTypefindFactory derive from it, and they are
+	  opaque already, and we currently don't support
+	  custom plugin features in the registry anyway.
+
+2012-05-19 17:23:43 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstplugin.c:
+	* tools/gst-inspect.c:
+	  tools, tests: don't access the GstPluginFeature structure directly
+
+2012-05-19 17:16:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginfeature.h:
+	* win32/common/libgstreamer.def:
+	  pluginfeature: add gst_plugin_feature_get_plugin()
+	  Add function to retrieve plugin that provides this feature.
+	  API: gst_plugin_feature_get_plugin()
+
+2012-05-19 16:21:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  common: update for gstscanobj changes
+
+2012-05-19 15:51:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstelementfactory.h:
+	* tests/check/gst/gstelementfactory.c:
+	  elementfactory: make object struct opaque for now
+	  Make GstElementFactory opaque until we have time to
+	  clean it up a little. It's not something anyone
+	  would need to derive from.
+
+2012-05-19 14:59:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  tools: don't use private GstElementFactory API in gst-inspect
+
+2012-05-19 14:52:29 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstelementfactory.c:
+	* gst/gstelementfactory.h:
+	* win32/common/libgstreamer.def:
+	  elementfactory: add gst_element_factory_get_metadata_keys()
+	  API: gst_element_factory_get_metadata_keys()
+
+2012-05-18 09:52:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  launch: improve EOS on shutdown handling
+	  When the -e option is selected, also wait for EOS when the pipeline produced an
+	  error.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=630997
+
+2012-05-16 18:53:15 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/gststructure.c:
+	  docs: fix gst_structure_to_string() docs
+
+2012-05-16 13:24:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: throttle-time is used
+
+2012-05-16 12:08:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	  basesink: add prepare method
+	  Add a prepare method that is called before sync happens. The purpose of this
+	  method is to prepare the rendering of the giving buffer so that the following
+	  render() call after sync is a quick as possible.
+
+2012-05-16 09:16:26 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: avoid potential deadlock
+	  In gst_base_src_start_complete() we do a perform_seek() that will eventually
+	  start the streaming thread which acquires the live lock and then goes to sleep
+	  in the case of appsrc. Right after we perform seek we also try to acquire the
+	  live lock which might then deadlock.
+	  fix this by taking the stream lock before performing the seek. This makes sure
+	  that the streaming thread cannot start and grab the live lock until we are done
+	  and release the stream lock again.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676048
+
+2012-05-15 19:11:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: remove references to mmap in comments and debug messages
+
+2012-05-15 16:38:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	* tools/gst-launch.c:
+	* win32/common/libgstreamer.def:
+	  gst: Rename gst_toc_entry_type_to_string() to gst_toc_entry_type_get_nick()
+	  It's more consistent.
+
+2012-05-15 14:59:07 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* tools/gst-launch.c:
+	  gst-launch: fix print_toc_entry()
+
+2012-05-15 14:48:35 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	* win32/common/libgstreamer.def:
+	  toc: API: Add gst_toc_entry_type_to_string()
+
+2012-05-14 03:57:50 +0200  Alban Browaeys <prahal@yahoo.com>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefindelement: if sink pad is activated do not change mode
+	  In commit bf0964b6 a check for pad is activated was not carried.
+	  This leads to attempt to pull while in push mode when force_caps
+	  is set. In this case without the attached check even when activated
+	  in pull mode we activate back to push mode.
+	  This is from comment in previous code , case number eight:
+	  8. if the sink pad is activated, we are in pull mode. succeed.
+	  -     otherwise activate both pads in push mode and succeed.
+	  Putting it back fixes playback of webm in webkit+gstreamer 1.0 .
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676003
+
+2012-05-13 16:59:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  Back to development
+
+=== release 0.11.91 ===
+
+2012-05-13 16:02:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* common:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* gstreamer.doap:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	  Release 0.11.91
+
+2012-05-13 16:02:18 +0200  Sebastian Dröge <sebastian.droege@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:
+	  Update .po files
+
+2012-05-13 15:55:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From dc70203 to 3429ba6
 
 2012-05-09 14:22:20 +0200  Sebastian Rasmussen <sebrn@axis.com>
 
diff --git a/Makefile.in b/Makefile.in
index e0990cf..4c28bc0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -62,6 +62,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
 	$(srcdir)/gst-element-check.m4.in $(srcdir)/gstreamer.spec.in \
@@ -324,6 +325,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -476,7 +481,11 @@
 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@
diff --git a/NEWS b/NEWS
index cc7988f..a794dc9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,11 @@
-This is GStreamer 0.11.91 "I will give you five magic beans!"
+This is GStreamer 0.11.92 "High Hopes"
+
+New features in 0.11.92:
+
+      * Parallel installability with 0.10.x series
+      * API cleanup and minor API improvements
+      * GstTagList is a refcounted type now
+      * Lots of bugfixes, cleanup and other improvements
 
 New features in 0.11.91:
 
diff --git a/RELEASE b/RELEASE
index bc68642..fe51c74 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer 0.11.91 "I will give you five magic beans!"
+Release notes for GStreamer 0.11.92 "High Hopes"
         
 
 
@@ -8,12 +8,14 @@
 core of the GStreamer streaming media framework.
 
 
+
 The 0.11.x series is an unstable series targeted at developers and will
 eventually lead up to the stable 1.0 series.
 It is not API or ABI compatible with the stable 0.10.x series.
 It is, however, parallel installable with the 0.10.x series.
 
 
+
 The 0.11.x series has improved memory management and features
 various cleanups and enhancements.
 
@@ -40,10 +42,9 @@
 Features of this release
     
       * Parallel installability with 0.10.x series
-      * Threadsafe design and API
-      * API cleanup and minor improvements
-      * More hiding of structs that don't need to be public
-      * Addition of SNAP flag for seek events
+      * API cleanup and minor API improvements
+      * GstTagList is a refcounted type now
+      * Lots of bugfixes, cleanup and other improvements
 There were no bugs fixed in this release
     
 
@@ -72,26 +73,25 @@
         
 Applications
 
-Various applications have early ports to GStreamer 0.11 including Totem, RhythmBox,
-Webkit, Jokosher, Transmageddon and others. We're working on porting more applications.
+Various applications have early ports to GStreamer 0.11 including Totem, RhythmBox, Webkit, Jokosher, Transmageddon and others. We're working on porting more applications.
 
   
 Contributors to this release
     
+      * Alban Browaeys
+      * Andre Moreira Magalhaes (andrunko)
       * Anton Belka
+      * Bastien Nocera
+      * Brian Cameron
       * Edward Hervey
+      * Havard Graff
+      * Josep Torra
+      * Luis de Bethencourt
       * Mark Nauwelaerts
-      * Matej Knopp
-      * Raimo Järvi
-      * Reynaldo H. Verdejo Pinochet
+      * Mike Ruprecht
       * Sebastian Dröge
-      * Sebastian Rasmussen
       * Sreerenj Balachandran
       * Stefan Sauer
-      * Thiago Santos
       * Tim-Philipp Müller
-      * Vincent Penquerc'h
       * Wim Taymans
-      * Youness Alaoui
-      * Руслан Ижбулатов
  
\ No newline at end of file
diff --git a/common/Makefile.in b/common/Makefile.in
index db3ce35..2e793ef 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = common
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -257,6 +258,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@
 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@
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index b0699c7..0d69a86 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -245,11 +245,13 @@
       if (gst_plugin_get_filename (plugin) == NULL)
         continue;
 
-      $debug_log ("plugin: %s source: %s", plugin->desc.name, source);
+      $debug_log ("plugin: %s source: %s", gst_plugin_get_name (plugin), source);
 
       if (reinspect) {
+        gchar *basename;
+
         inspect_name = g_strdup_printf ("$INSPECT_DIR" G_DIR_SEPARATOR_S "plugin-%s.xml",
-            plugin->desc.name);
+            gst_plugin_get_name (plugin));
         inspect = fopen (inspect_name, "w");
         if (inspect == NULL) {
           g_error ("Could not open %s for writing: %s\\n", inspect_name,
@@ -257,23 +259,27 @@
         }
         g_free (inspect_name);
 
+		  basename = g_path_get_basename (gst_plugin_get_filename (plugin));
+
         /* output plugin data */
         fputs ("<plugin>\\n",inspect);
-        fputs (xmlprint(2, "name", plugin->desc.name),inspect);
-        fputs (xmlprint(2, "description", plugin->desc.description),inspect);
-        fputs (xmlprint(2, "filename", plugin->filename),inspect);
-        fputs (xmlprint(2, "basename", plugin->basename),inspect);
-        fputs (xmlprint(2, "version", plugin->desc.version),inspect);
-        fputs (xmlprint(2, "license", plugin->desc.license),inspect);
-        fputs (xmlprint(2, "source", plugin->desc.source),inspect);
-        fputs (xmlprint(2, "package", plugin->desc.package),inspect);
-        fputs (xmlprint(2, "origin", plugin->desc.origin),inspect);
+        fputs (xmlprint(2, "name", gst_plugin_get_name (plugin)),inspect);
+        fputs (xmlprint(2, "description", gst_plugin_get_description (plugin)),inspect);
+        fputs (xmlprint(2, "filename", gst_plugin_get_filename (plugin)),inspect);
+        fputs (xmlprint(2, "basename", basename),inspect);
+        fputs (xmlprint(2, "version", gst_plugin_get_version (plugin)),inspect);
+        fputs (xmlprint(2, "license", gst_plugin_get_license (plugin)),inspect);
+        fputs (xmlprint(2, "source", gst_plugin_get_source (plugin)),inspect);
+        fputs (xmlprint(2, "package", gst_plugin_get_package (plugin)),inspect);
+        fputs (xmlprint(2, "origin", gst_plugin_get_origin (plugin)),inspect);
         fputs ("  <elements>\\n", inspect);
+
+		  g_free (basename);
       }
 
       features =
           gst_registry_get_feature_list_by_plugin (gst_registry_get (),
-          plugin->desc.name);
+          gst_plugin_get_name (plugin));
 
       /* sort factories by feature->name */
       features = g_list_sort (features, gst_feature_sort_compare);
diff --git a/common/m4/Makefile.am b/common/m4/Makefile.am
index 2ddb8a7..856d6e3 100644
--- a/common/m4/Makefile.am
+++ b/common/m4/Makefile.am
@@ -8,7 +8,6 @@
 	as-gcc-inline-assembly.m4 \
 	as-libtool.m4 \
 	as-libtool-tags.m4 \
-	as-objc.m4 \
 	as-python.m4 \
 	as-scrub-include.m4 \
 	as-version.m4 \
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 8767f43..d2580d9 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = common/m4
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@
 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@
@@ -383,7 +392,6 @@
 	as-gcc-inline-assembly.m4 \
 	as-libtool.m4 \
 	as-libtool-tags.m4 \
-	as-objc.m4 \
 	as-python.m4 \
 	as-scrub-include.m4 \
 	as-version.m4 \
diff --git a/common/m4/as-compiler-flag.m4 b/common/m4/as-compiler-flag.m4
index 882a4c7..8bb853a 100644
--- a/common/m4/as-compiler-flag.m4
+++ b/common/m4/as-compiler-flag.m4
@@ -62,3 +62,35 @@
   AC_MSG_RESULT([$flag_ok])
 ])
 
+dnl AS_OBJC_COMPILER_FLAG(CPPFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
+dnl Tries to compile with the given CPPFLAGS.
+dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
+dnl and ACTION-IF-NOT-ACCEPTED otherwise.
+
+AC_DEFUN([AS_OBJC_COMPILER_FLAG],
+[
+  AC_REQUIRE([AC_PROG_OBJC])
+
+  AC_MSG_CHECKING([to see if Objective C compiler understands $1])
+
+  save_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $1"
+
+  AC_LANG_PUSH([Objective C])
+
+  AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
+  CPPFLAGS="$save_CPPFLAGS"
+
+  if test "X$flag_ok" = Xyes ; then
+    $2
+    true
+  else
+    $3
+    true
+  fi
+
+  AC_LANG_POP([Objective C])
+
+  AC_MSG_RESULT([$flag_ok])
+])
+
diff --git a/common/m4/as-objc.m4 b/common/m4/as-objc.m4
deleted file mode 100644
index 1e7066a..0000000
--- a/common/m4/as-objc.m4
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-# AC_PROG_OBJC([LIST-OF-COMPILERS])
-#
-AC_DEFUN([AS_PROG_OBJC],
-[
-AC_CHECK_TOOLS(OBJC,
-	[m4_default([$1], [objcc objc gcc cc CC])],
-	none)
-AC_SUBST(OBJC)
-OBJC_LDFLAGS="-lobjc"
-AC_SUBST(OBJC_LDFLAGS)
-if test "x$OBJC" != xnone ; then
-  _AM_DEPENDENCIES(OBJC)
-  AC_MSG_CHECKING([if Objective C compiler works])
-  cat >>conftest.m <<EOF
-#include <objc/Object.h>
-@interface Moo:Object
-{
-}
-- moo;
-int main();
-@end
-
-@implementation Moo
-- moo
-{
-  exit(0);
-}
-
-int main()
-{
-  id moo;
-  moo = [[Moo new]];
-  [[moo moo]];
-  return 1;
-}
-@end
-EOF
-  ${OBJC} conftest.m ${OBJC_LDFLAGS} >&5 2>&5
-  if test -f a.out -o -f a.exe ; then
-    result=yes
-  else
-    result=no
-    echo failed program is: >&5
-    cat conftest.m >&5
-  fi
-  rm -f conftest.m a.out a.exe
-  AC_MSG_RESULT([$result])
-else
-  _AM_DEPENDENCIES(OBJC)
-fi
-
-])
-
-
diff --git a/common/m4/gst-arch.m4 b/common/m4/gst-arch.m4
index 2e935d2..ff0954a 100644
--- a/common/m4/gst-arch.m4
+++ b/common/m4/gst-arch.m4
@@ -6,31 +6,32 @@
 AC_DEFUN([AG_GST_ARCH],
 [
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use host_ variables
+  AC_REQUIRE([AC_CANONICAL_TARGET]) dnl we use target_ variables
 
   dnl Determine CPU
-  case "x${host_cpu}" in
+  case "x${target_cpu}" in
     xi?86 | xk? | xi?86_64)
-      case $host_os in
+      case $target_os in
          solaris*)
             AC_CHECK_DECL([__i386],	[I386_ABI="yes"], [I386_ABI="no"])
             AC_CHECK_DECL([__amd64], [AMD64_ABI="yes"], [AMD64_ABI="no"])
 
             if test "x$I386_ABI" = "xyes" ; then
                HAVE_CPU_I386=yes
-               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the host CPU is an x86])
+               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
             fi
             if test "x$AMD64_ABI" = "xyes" ; then
                 HAVE_CPU_X86_64=yes
-                AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the host CPU is a x86_64])
+                AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the target CPU is a x86_64])
             fi
             ;;
          *)
             HAVE_CPU_I386=yes
-            AC_DEFINE(HAVE_CPU_I386, 1, [Define if the host CPU is an x86])
+            AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
 
             dnl FIXME could use some better detection
             dnl (ie CPUID)
-            case "x${host_cpu}" in
+            case "x${target_cpu}" in
               xi386 | xi486) ;;
             *)
               AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
@@ -40,43 +41,43 @@
       ;;
     xpowerpc)
       HAVE_CPU_PPC=yes
-      AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the host CPU is a PowerPC]) ;;
+      AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PowerPC]) ;;
     xpowerpc64)
       HAVE_CPU_PPC64=yes
-      AC_DEFINE(HAVE_CPU_PPC64, 1, [Define if the host CPU is a 64 bit PowerPC]) ;;
+      AC_DEFINE(HAVE_CPU_PPC64, 1, [Define if the target CPU is a 64 bit PowerPC]) ;;
     xalpha*)
       HAVE_CPU_ALPHA=yes
-      AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the host CPU is an Alpha]) ;;
+      AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
     xarm*)
       HAVE_CPU_ARM=yes
-      AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the host CPU is an ARM]) ;;
+      AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
     xsparc*)
       HAVE_CPU_SPARC=yes
-      AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the host CPU is a SPARC]) ;;
+      AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a SPARC]) ;;
     xmips*)
       HAVE_CPU_MIPS=yes
-      AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the host CPU is a MIPS]) ;;
+      AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
     xhppa*)
       HAVE_CPU_HPPA=yes
-      AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the host CPU is a HPPA]) ;;
+      AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
     xs390*)
       HAVE_CPU_S390=yes
-      AC_DEFINE(HAVE_CPU_S390, 1, [Define if the host CPU is a S390]) ;;
+      AC_DEFINE(HAVE_CPU_S390, 1, [Define if the target CPU is a S390]) ;;
     xia64*)
       HAVE_CPU_IA64=yes
-      AC_DEFINE(HAVE_CPU_IA64, 1, [Define if the host CPU is a IA64]) ;;
+      AC_DEFINE(HAVE_CPU_IA64, 1, [Define if the target CPU is a IA64]) ;;
     xm68k*)
       HAVE_CPU_M68K=yes
-      AC_DEFINE(HAVE_CPU_M68K, 1, [Define if the host CPU is a M68K]) ;;
+      AC_DEFINE(HAVE_CPU_M68K, 1, [Define if the target CPU is a M68K]) ;;
     xx86_64)
       HAVE_CPU_X86_64=yes
-      AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the host CPU is a x86_64]) ;;
+      AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the target CPU is a x86_64]) ;;
     xcris)
       HAVE_CPU_CRIS=yes
-      AC_DEFINE(HAVE_CPU_CRIS, 1, [Define if the host CPU is a CRIS]) ;;
+      AC_DEFINE(HAVE_CPU_CRIS, 1, [Define if the target CPU is a CRIS]) ;;
     xcrisv32)
       HAVE_CPU_CRISV32=yes
-      AC_DEFINE(HAVE_CPU_CRISV32, 1, [Define if the host CPU is a CRISv32]) ;;
+      AC_DEFINE(HAVE_CPU_CRISV32, 1, [Define if the target CPU is a CRISv32]) ;;
   esac
 
   dnl Determine endianness
@@ -98,6 +99,7 @@
   AM_CONDITIONAL(HAVE_CPU_CRISV32,    test "x$HAVE_CPU_CRISV32" = "xyes")
 
   AC_DEFINE_UNQUOTED(HOST_CPU, "$host_cpu", [the host CPU])
+  AC_DEFINE_UNQUOTED(TARGET_CPU, "$target_cpu", [the target CPU])
 ])
 
 dnl check if unaligned memory access works correctly
diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4
index 2dc0184..4872e3c 100644
--- a/common/m4/gst-args.m4
+++ b/common/m4/gst-args.m4
@@ -111,13 +111,13 @@
     dnl if gcov is used, we do not want default -O2 CFLAGS
     if test "x$GST_GCOV_ENABLED" = "xyes"
     then
-      CFLAGS="-O0"
+      CFLAGS="$CFLAGS -O0"
       AC_SUBST(CFLAGS)
-      CXXFLAGS="-O0"
+      CXXFLAGS="$CXXFLAGS -O0"
       AC_SUBST(CXXFLAGS)
-      FFLAGS="-O0"
+      FFLAGS="$FFLAGS -O0"
       AC_SUBST(FFLAGS)
-      CCASFLAGS="-O0"
+      CCASFLAGS="$CCASFLAGS -O0"
       AC_SUBST(CCASFLAGS)
       AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS])
     fi
diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4
index f8f2364..e12a04c 100644
--- a/common/m4/gst-error.m4
+++ b/common/m4/gst-error.m4
@@ -196,6 +196,91 @@
   AC_MSG_NOTICE([set ERROR_CXXFLAGS to $ERROR_CXXFLAGS])
 ])
 
+dnl Sets WARNING_OBJCFLAGS and ERROR_OBJCFLAGS to something the compiler 
+dnl will accept and AC_SUBST them so they are available in Makefile
+dnl
+dnl WARNING_OBJCFLAGS will contain flags to make the compiler emit more
+dnl   warnings.
+dnl ERROR_OBJCFLAGS will contain flags to make those warnings fatal,
+dnl   unless ADD-WERROR is set to "no"
+dnl 
+dnl If MORE_FLAGS is set, tries to add each of the given flags
+dnl to WARNING_CFLAGS if the compiler supports them. Each flag is 
+dnl tested separately.
+dnl
+dnl These flags can be overridden at make time:
+dnl make ERROR_OBJCFLAGS=
+AC_DEFUN([AG_GST_SET_ERROR_OBJCFLAGS],
+[
+  AC_REQUIRE([AC_PROG_OBJC])
+  AC_REQUIRE([AS_OBJC_COMPILER_FLAG])
+
+  ERROR_OBJCFLAGS=""
+  WARNING_OBJCFLAGS=""
+
+  dnl if we support -Wall, set it unconditionally
+  AS_OBJC_COMPILER_FLAG(-Wall, WARNING_OBJCFLAGS="$WARNING_OBJCFLAGS -Wall")
+
+  dnl if asked for, add -Werror if supported
+  if test "x$1" != "xno"
+  then
+    AS_OBJC_COMPILER_FLAG(-Werror, ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -Werror")
+
+    if test "x$ERROR_OBJCFLAGS" != "x"
+    then
+	dnl Add -fno-strict-aliasing for GLib versions before 2.19.8
+	dnl as before G_LOCK and friends caused strict aliasing compiler
+	dnl warnings.
+	PKG_CHECK_EXISTS([glib-2.0 < 2.19.8], [
+	  AS_OBJC_COMPILER_FLAG([-fno-strict-aliasing],
+	    ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -fno-strict-aliasing")
+	  ])
+    else
+      dnl if -Werror isn't suported, try -errwarn=%all
+      AS_OBJC_COMPILER_FLAG([-errwarn=%all], ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -errwarn=%all")
+      if test "x$ERROR_OBJCFLAGS" != "x"; then
+        dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,
+        dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH,
+        dnl no%E_MACRO_REDEFINED (Sun Forte case)
+        dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon
+        dnl "statement not reached" disabled because there is g_assert_not_reached () in some places
+        dnl "macro redefined" because of gst/gettext.h
+        dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'?
+        dnl FIXME: do any of these work with the c++ compiler? if not, why
+        dnl do we check at all?
+        for f in 'no%E_EMPTY_DECLARATION' \
+                 'no%E_STATEMENT_NOT_REACHED' \
+                 'no%E_ARGUEMENT_MISMATCH' \
+                 'no%E_MACRO_REDEFINED' \
+                 'no%E_LOOP_NOT_ENTERED_AT_TOP'
+        do
+          AS_OBJC_COMPILER_FLAG([-errwarn=%all,$f], ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS,$f")
+        done
+      fi
+    fi
+  fi
+
+  if test "x$2" != "x"
+  then
+    UNSUPPORTED=""
+    list="$2"
+    for each in $list
+    do
+      AS_OBJC_COMPILER_FLAG($each,
+          WARNING_OBJCFLAGS="$WARNING_OBJCFLAGS $each",
+          UNSUPPORTED="$UNSUPPORTED $each")
+    done
+    if test "X$UNSUPPORTED" != X ; then
+      AC_MSG_NOTICE([unsupported compiler flags: $UNSUPPORTED])
+    fi
+  fi
+
+  AC_SUBST(WARNING_OBJCFLAGS)
+  AC_SUBST(ERROR_OBJCFLAGS)
+  AC_MSG_NOTICE([set WARNING_OBJCFLAGS to $WARNING_OBJCFLAGS])
+  AC_MSG_NOTICE([set ERROR_OBJCFLAGS to $ERROR_OBJCFLAGS])
+])
+
 dnl Sets the default error level for debugging messages
 AC_DEFUN([AG_GST_SET_LEVEL_DEFAULT],
 [
diff --git a/common/m4/gtk-doc.m4 b/common/m4/gtk-doc.m4
index 39a4e7d..0c1a305 100644
--- a/common/m4/gtk-doc.m4
+++ b/common/m4/gtk-doc.m4
@@ -6,8 +6,15 @@
 dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
 AC_DEFUN([GTK_DOC_CHECK],
 [
+  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
   AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
   AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
+  dnl check for tools we added during development
+  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
+  AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
+
   dnl for overriding the documentation installation directory
   AC_ARG_WITH([html-dir],
     AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
@@ -26,7 +33,13 @@
       [PKG_CHECK_EXISTS([gtk-doc],,
                         AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
       [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
+                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
+    dnl don't check for glib if we build glib
+    if test "x$PACKAGE_NAME" != "xglib"; then
+      dnl don't fail if someone does not have glib
+      PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,)
+    fi
+    dnl don't rely on sed being pulled in implicitly. Fixes Solaris build.
     if test -z "$SED"; then
       AC_PROG_SED
     fi
@@ -35,8 +48,24 @@
   AC_MSG_CHECKING([whether to build gtk-doc documentation])
   AC_MSG_RESULT($enable_gtk_doc)
 
-  AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
+  dnl enable/disable output formats
+  AC_ARG_ENABLE([gtk-doc-html],
+    AS_HELP_STRING([--enable-gtk-doc-html],
+                   [build documentation in html format [[default=yes]]]),,
+    [enable_gtk_doc_html=yes])
+    AC_ARG_ENABLE([gtk-doc-pdf],
+      AS_HELP_STRING([--enable-gtk-doc-pdf],
+                     [build documentation in pdf format [[default=no]]]),,
+      [enable_gtk_doc_pdf=no])
+
+  if test -z "$GTKDOC_MKPDF"; then
+    enable_gtk_doc_pdf=no
+  fi
+
 
   AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
+  AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
+  AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
   AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
+  AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
 ])
diff --git a/config.h.in b/config.h.in
index d78a08e..43b0e35 100644
--- a/config.h.in
+++ b/config.h.in
@@ -75,46 +75,46 @@
 /* Define to 1 if you have the `clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
-/* Define if the host CPU is an Alpha */
+/* Define if the target CPU is an Alpha */
 #undef HAVE_CPU_ALPHA
 
-/* Define if the host CPU is an ARM */
+/* Define if the target CPU is an ARM */
 #undef HAVE_CPU_ARM
 
-/* Define if the host CPU is a CRIS */
+/* Define if the target CPU is a CRIS */
 #undef HAVE_CPU_CRIS
 
-/* Define if the host CPU is a CRISv32 */
+/* Define if the target CPU is a CRISv32 */
 #undef HAVE_CPU_CRISV32
 
-/* Define if the host CPU is a HPPA */
+/* Define if the target CPU is a HPPA */
 #undef HAVE_CPU_HPPA
 
-/* Define if the host CPU is an x86 */
+/* Define if the target CPU is an x86 */
 #undef HAVE_CPU_I386
 
-/* Define if the host CPU is a IA64 */
+/* Define if the target CPU is a IA64 */
 #undef HAVE_CPU_IA64
 
-/* Define if the host CPU is a M68K */
+/* Define if the target CPU is a M68K */
 #undef HAVE_CPU_M68K
 
-/* Define if the host CPU is a MIPS */
+/* Define if the target CPU is a MIPS */
 #undef HAVE_CPU_MIPS
 
-/* Define if the host CPU is a PowerPC */
+/* Define if the target CPU is a PowerPC */
 #undef HAVE_CPU_PPC
 
-/* Define if the host CPU is a 64 bit PowerPC */
+/* Define if the target CPU is a 64 bit PowerPC */
 #undef HAVE_CPU_PPC64
 
-/* Define if the host CPU is a S390 */
+/* Define if the target CPU is a S390 */
 #undef HAVE_CPU_S390
 
-/* Define if the host CPU is a SPARC */
+/* Define if the target CPU is a SPARC */
 #undef HAVE_CPU_SPARC
 
-/* Define if the host CPU is a x86_64 */
+/* Define if the target CPU is a x86_64 */
 #undef HAVE_CPU_X86_64
 
 /* Define if the GNU dcgettext() function is already present or preinstalled.
@@ -359,6 +359,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* the target CPU */
+#undef TARGET_CPU
+
 /* Define if we should poison deallocated memory */
 #undef USE_POISONING
 
diff --git a/configure b/configure
index e0afcc6..19506a2 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 0.11.91.
+# Generated by GNU Autoconf 2.69 for GStreamer 0.11.92.
 #
 # 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='0.11.91'
-PACKAGE_STRING='GStreamer 0.11.91'
+PACKAGE_VERSION='0.11.92'
+PACKAGE_STRING='GStreamer 0.11.92'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -715,12 +715,22 @@
 PYTHON_PREFIX
 PYTHON_VERSION
 PYTHON
+GTK_DOC_USE_REBASE_FALSE
+GTK_DOC_USE_REBASE_TRUE
 GTK_DOC_USE_LIBTOOL_FALSE
 GTK_DOC_USE_LIBTOOL_TRUE
+GTK_DOC_BUILD_PDF_FALSE
+GTK_DOC_BUILD_PDF_TRUE
+GTK_DOC_BUILD_HTML_FALSE
+GTK_DOC_BUILD_HTML_TRUE
 ENABLE_GTK_DOC_FALSE
 ENABLE_GTK_DOC_TRUE
-GTKDOC_CHECK
+GTKDOC_DEPS_LIBS
+GTKDOC_DEPS_CFLAGS
 HTML_DIR
+GTKDOC_MKPDF
+GTKDOC_REBASE
+GTKDOC_CHECK
 DOC_PS_FALSE
 DOC_PS_TRUE
 DOC_PDF_FALSE
@@ -803,6 +813,10 @@
 HAVE_CPU_PPC_TRUE
 HAVE_CPU_I386_FALSE
 HAVE_CPU_I386_TRUE
+target_os
+target_vendor
+target_cpu
+target
 BUILD_FAILING_TESTS_FALSE
 BUILD_FAILING_TESTS_TRUE
 BUILD_TESTS_FALSE
@@ -1041,6 +1055,8 @@
 enable_docbook
 with_html_dir
 enable_gtk_doc
+enable_gtk_doc_html
+enable_gtk_doc_pdf
 enable_gobject_cast_checks
 enable_glib_asserts
 enable_check
@@ -1065,6 +1081,8 @@
 CXXFLAGS
 CCC
 CXXCPP
+GTKDOC_DEPS_CFLAGS
+GTKDOC_DEPS_LIBS
 GLIB_CFLAGS
 GLIB_LIBS
 GIO_CFLAGS
@@ -1609,7 +1627,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer 0.11.91 to adapt to many kinds of systems.
+\`configure' configures GStreamer 0.11.92 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1674,12 +1692,13 @@
 System types:
   --build=BUILD     configure for building on BUILD [guessed]
   --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
 _ACEOF
 fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer 0.11.91:";;
+     short | recursive ) echo "Configuration of GStreamer 0.11.92:";;
    esac
   cat <<\_ACEOF
 
@@ -1724,6 +1743,8 @@
                           Enable introspection for this build
   --enable-docbook        use docbook to build documentation [default=no]
   --enable-gtk-doc        use gtk-doc to build documentation [[default=no]]
+  --enable-gtk-doc-html   build documentation in html format [[default=yes]]
+  --enable-gtk-doc-pdf    build documentation in pdf format [[default=no]]
   --enable-gobject-cast-checks=[no/auto/yes]
                           Enable GObject cast checks
   --enable-glib-asserts=[no/auto/yes]
@@ -1777,6 +1798,10 @@
   CXX         C++ compiler command
   CXXFLAGS    C++ compiler flags
   CXXCPP      C++ preprocessor
+  GTKDOC_DEPS_CFLAGS
+              C compiler flags for GTKDOC_DEPS, overriding pkg-config
+  GTKDOC_DEPS_LIBS
+              linker flags for GTKDOC_DEPS, overriding pkg-config
   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
@@ -1848,7 +1873,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer configure 0.11.91
+GStreamer configure 0.11.92
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2621,7 +2646,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 0.11.91, which was
+It was created by GStreamer $as_me 0.11.92, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3444,7 +3469,7 @@
 
 # Define the identity of the package.
  PACKAGE='gstreamer'
- VERSION='0.11.91'
+ VERSION='0.11.92'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3567,9 +3592,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 0.11.91 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 0.11.91 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 0.11.91 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 0.11.92 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 0.11.92 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 0.11.92 | cut -d'.' -f3)
 
 
 
@@ -3580,7 +3605,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 0.11.91 | cut -d'.' -f4)
+  NANO=$(echo 0.11.92 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -15204,13 +15229,13 @@
 
         if test "x$GST_GCOV_ENABLED" = "xyes"
     then
-      CFLAGS="-O0"
+      CFLAGS="$CFLAGS -O0"
 
-      CXXFLAGS="-O0"
+      CXXFLAGS="$CXXFLAGS -O0"
 
-      FFLAGS="-O0"
+      FFLAGS="$FFLAGS -O0"
 
-      CCASFLAGS="-O0"
+      CCASFLAGS="$CCASFLAGS -O0"
 
       { $as_echo "$as_me:${as_lineno-$LINENO}: gcov enabled, setting CFLAGS and friends to $CFLAGS" >&5
 $as_echo "$as_me: gcov enabled, setting CFLAGS and friends to $CFLAGS" >&6;}
@@ -15490,11 +15515,50 @@
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
+else
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
 
 
-    case "x${host_cpu}" in
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+
+    case "x${target_cpu}" in
     xi?86 | xk? | xi?86_64)
-      case $host_os in
+      case $target_os in
          solaris*)
             ac_fn_c_check_decl "$LINENO" "__i386" "ac_cv_have_decl___i386" "$ac_includes_default"
 if test "x$ac_cv_have_decl___i386" = xyes; then :
@@ -15530,7 +15594,7 @@
 $as_echo "#define HAVE_CPU_I386 1" >>confdefs.h
 
 
-                                    case "x${host_cpu}" in
+                                    case "x${target_cpu}" in
               xi386 | xi486) ;;
             *)
 
@@ -15951,6 +16015,11 @@
 _ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define TARGET_CPU "$target_cpu"
+_ACEOF
+
+
 HOST_CPU=$host_cpu
 
 
@@ -22136,6 +22205,135 @@
 
 
 
+
+    # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; 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_GTKDOC_CHECK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_CHECK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ;;
+  *)
+  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_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    $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
+
+  ;;
+esac
+fi
+GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  for ac_prog in gtkdoc-rebase
+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_GTKDOC_REBASE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_REBASE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path.
+  ;;
+  *)
+  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_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext"
+    $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
+
+  ;;
+esac
+fi
+GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE
+if test -n "$GTKDOC_REBASE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5
+$as_echo "$GTKDOC_REBASE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$GTKDOC_REBASE" && break
+done
+test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true"
+
+  # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args.
+set dummy gtkdoc-mkpdf; 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_GTKDOC_MKPDF+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_MKPDF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path.
+  ;;
+  *)
+  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_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext"
+    $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
+
+  ;;
+esac
+fi
+GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF
+if test -n "$GTKDOC_MKPDF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5
+$as_echo "$GTKDOC_MKPDF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
 # Check whether --with-html-dir was given.
 if test "${with_html_dir+set}" = set; then :
   withval=$with_html_dir;
@@ -22163,9 +22361,101 @@
   test $ac_status = 0; }; then
   :
 else
-  as_fn_error $? "You need to have gtk-doc >= 1.3 installed to build gtk-doc" "$LINENO" 5
+  as_fn_error $? "You need to have gtk-doc >= 1.3 installed to build $PACKAGE_NAME" "$LINENO" 5
 fi
-    if test -z "$SED"; then
+        if test "x$PACKAGE_NAME" != "xglib"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
+$as_echo_n "checking for GTKDOC_DEPS... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTKDOC_DEPS_CFLAGS"; then
+        pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTKDOC_DEPS_LIBS"; then
+        pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0"`
+        else
+	        GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
+
+	as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0) were not met:
+
+$GTKDOC_DEPS_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
+and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" "$LINENO" 5
+elif test $pkg_failed = untried; then
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
+and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+	GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
+	GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	:
+fi
+    fi
+        if test -z "$SED"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
 if ${ac_cv_path_SED+:} false; then :
@@ -22243,50 +22533,24 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
 $as_echo "$enable_gtk_doc" >&6; }
 
-  for ac_prog in gtkdoc-check
-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_GTKDOC_CHECK+:} false; then :
-  $as_echo_n "(cached) " >&6
+    # Check whether --enable-gtk-doc-html was given.
+if test "${enable_gtk_doc_html+set}" = set; then :
+  enableval=$enable_gtk_doc_html;
 else
-  case $GTKDOC_CHECK in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
-  ;;
-  *)
-  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_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+  enable_gtk_doc_html=yes
+fi
+
+    # Check whether --enable-gtk-doc-pdf was given.
+if test "${enable_gtk_doc_pdf+set}" = set; then :
+  enableval=$enable_gtk_doc_pdf;
+else
+  enable_gtk_doc_pdf=no
+fi
+
+
+  if test -z "$GTKDOC_MKPDF"; then
+    enable_gtk_doc_pdf=no
   fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$GTKDOC_CHECK" && break
-done
 
 
    if test x$enable_gtk_doc = xyes; then
@@ -22297,6 +22561,22 @@
   ENABLE_GTK_DOC_FALSE=
 fi
 
+   if test x$enable_gtk_doc_html = xyes; then
+  GTK_DOC_BUILD_HTML_TRUE=
+  GTK_DOC_BUILD_HTML_FALSE='#'
+else
+  GTK_DOC_BUILD_HTML_TRUE='#'
+  GTK_DOC_BUILD_HTML_FALSE=
+fi
+
+   if test x$enable_gtk_doc_pdf = xyes; then
+  GTK_DOC_BUILD_PDF_TRUE=
+  GTK_DOC_BUILD_PDF_FALSE='#'
+else
+  GTK_DOC_BUILD_PDF_TRUE='#'
+  GTK_DOC_BUILD_PDF_FALSE=
+fi
+
    if test -n "$LIBTOOL"; then
   GTK_DOC_USE_LIBTOOL_TRUE=
   GTK_DOC_USE_LIBTOOL_FALSE='#'
@@ -22305,6 +22585,14 @@
   GTK_DOC_USE_LIBTOOL_FALSE=
 fi
 
+   if test -n "$GTKDOC_REBASE"; then
+  GTK_DOC_USE_REBASE_TRUE=
+  GTK_DOC_USE_REBASE_FALSE='#'
+else
+  GTK_DOC_USE_REBASE_TRUE='#'
+  GTK_DOC_USE_REBASE_FALSE=
+fi
+
 
 
 
@@ -25768,10 +26056,22 @@
   as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then
   as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ENABLE_PLUGIN_DOCS_TRUE}" && test -z "${ENABLE_PLUGIN_DOCS_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_PLUGIN_DOCS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -26209,7 +26509,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 0.11.91, which was
+This file was extended by GStreamer $as_me 0.11.92, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26275,7 +26575,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 0.11.91
+GStreamer config.status 0.11.92
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 4b0aa00..7612b34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
-AC_INIT(GStreamer, 0.11.91,
+AC_INIT(GStreamer, 0.11.92,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gstreamer)
 AG_GST_INIT
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 942e178..4539a19 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = docs
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/version.entities.in
@@ -257,6 +258,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@
 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@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index ed6ed53..a79dc0b 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = docs/design
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@
 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@
diff --git a/docs/design/part-negotiation.txt b/docs/design/part-negotiation.txt
index 89ae38b..bc94032 100644
--- a/docs/design/part-negotiation.txt
+++ b/docs/design/part-negotiation.txt
@@ -31,6 +31,12 @@
 A pad can ask the peer pad for its supported GstCaps. It does this with
 the CAPS query. The list of supported caps can be used to choose an
 appropriate GstCaps for the data transfer.
+The CAPS query works recursively, elements should take their peers into
+consideration when constructing the possible caps. Because the result caps
+can be very large, the filter can be used to restrict the caps. Only the
+caps that match the filter will be returned as the result caps. The
+order of the filter caps gives the order of preference of the caller and
+should be taken into account for the returned caps.
 
  (in) "filter", GST_TYPE_CAPS (default NULL)
        - a GstCaps to filter the results against
@@ -39,11 +45,15 @@
        - the result caps
 
 
+
 A pad can ask the peer pad if it supports a given caps. It does this with
-the ACCEPT_CAPS query.
+the ACCEPT_CAPS query. The caps must be fixed.
+The ACCEPT_CAPS query is not required to work recursively, it can simply
+return TRUE if a subsequent CAPS event with those caps would return
+success.
 
  (in) "caps", GST_TYPE_CAPS
-       - a GstCaps to check
+       - a GstCaps to check, must be fixed
 
  (out) "result", G_TYPE_BOOLEAN (default FALSE)
        - TRUE if the caps are accepted
@@ -56,7 +66,7 @@
 with the CAPS event. The caps must be fixed.
 
     "caps", GST_TYPE_CAPS
-       - the negotiated GstCaps
+       - the negotiated GstCaps, must be fixed
 
 
 Operation
diff --git a/docs/design/part-segments.txt b/docs/design/part-segments.txt
index 88f44ac..56a2e1a 100644
--- a/docs/design/part-segments.txt
+++ b/docs/design/part-segments.txt
@@ -84,7 +84,7 @@
     the stream_time of the seek that was performed.
 
     The stop time is important when the video format contains B frames. The
-    video decoder receives a P frame first, which is can decode but not push yet.
+    video decoder receives a P frame first, which it can decode but not push yet.
     When it receives a B frame, it can decode the B frame and push the B frame
     followed by the previously decoded P frame. If the P frame is outside of the
     segment, the decoder knows it should not send the P frame.
diff --git a/docs/faq/Makefile.in b/docs/faq/Makefile.in
index 5b8a72f..c652973 100644
--- a/docs/faq/Makefile.in
+++ b/docs/faq/Makefile.in
@@ -73,6 +73,7 @@
 POST_UNINSTALL = :
 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
@@ -271,6 +272,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -423,7 +428,11 @@
 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@
diff --git a/docs/gst/Makefile.in b/docs/gst/Makefile.in
index d2d4c7b..3cd35f6 100644
--- a/docs/gst/Makefile.in
+++ b/docs/gst/Makefile.in
@@ -69,6 +69,7 @@
 POST_UNINSTALL = :
 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
@@ -240,6 +241,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -392,7 +397,11 @@
 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@
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 8e7ebfb..6aa4058 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -814,6 +814,7 @@
 gst_element_factory_find
 gst_element_factory_get_element_type
 gst_element_factory_get_metadata
+gst_element_factory_get_metadata_keys
 gst_element_factory_get_num_pad_templates
 gst_element_factory_get_uri_type
 gst_element_factory_get_uri_protocols
@@ -2042,6 +2043,7 @@
 gst_plugin_feature_set_name
 gst_plugin_feature_get_rank
 gst_plugin_feature_get_name
+gst_plugin_feature_get_plugin
 gst_plugin_feature_load
 gst_plugin_feature_list_copy
 gst_plugin_feature_list_free
@@ -2517,6 +2519,7 @@
 GST_TAG_IMAGE_ORIENTATION
 
 gst_tag_register
+gst_tag_register_static
 gst_tag_merge_use_first
 gst_tag_merge_strings_with_comma
 gst_tag_exists
@@ -2530,13 +2533,15 @@
 gst_tag_list_new_valist
 gst_tag_list_new_from_string
 gst_tag_list_to_string
-gst_is_tag_list
 gst_tag_list_is_empty
 gst_tag_list_is_equal
 gst_tag_list_copy
+gst_tag_list_ref
+gst_tag_list_unref
+gst_tag_list_is_writable
+gst_tag_list_make_writable
 gst_tag_list_insert
 gst_tag_list_merge
-gst_tag_list_free
 gst_tag_list_get_tag_size
 gst_tag_list_n_tags
 gst_tag_list_nth_tag_name
@@ -2702,6 +2707,7 @@
 gst_toc_find_entry
 gst_toc_entry_get_start_stop
 gst_toc_entry_set_start_stop
+gst_toc_entry_type_get_nick
 <SUBSECTION Standard>
 GST_TYPE_TOC_ENTRY_TYPE
 <SUBSECTION Private>
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index be76ba1..1587b4c 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -157,7 +157,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11074672"></a><h3>Notes</h3>
+<a name="idp10089840"></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:
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index 332a2bf..87250a8 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -3473,6 +3473,9 @@
 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>
+<p>
+MT safe.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -3488,8 +3491,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#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was handled.
-MT safe.</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was handled. Events that trigger a preroll (such
+as flushing seeks and steps) will emit <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3546,8 +3549,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#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek operation succeeded (the seek might not always be
-executed instantly though)</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek operation succeeded. Flushing seeks will trigger a
+preroll, which will emit <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3569,6 +3572,9 @@
 the parameters. The seek event is sent to the element using
 <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()"><code class="function">gst_element_send_event()</code></a>.
 </p>
+<p>
+MT safe.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -3607,8 +3613,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#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was handled.
-MT safe.</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was handled. Flushing seeks will trigger a
+preroll, which will emit <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/gst/html/GstElementFactory.html b/docs/gst/html/GstElementFactory.html
index 720eac0..6b75503 100644
--- a/docs/gst/html/GstElementFactory.html
+++ b/docs/gst/html/GstElementFactory.html
@@ -42,7 +42,7 @@
 <pre class="synopsis">
 #include &lt;gst/gst.h&gt;
 
-struct              <a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="struct GstElementFactory">GstElementFactory</a>;
+                    <a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="GstElementFactory">GstElementFactory</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="GstElementFactory.html#gst-element-register" title="gst_element_register ()">gst_element_register</a>                (<em class="parameter"><code><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> *plugin</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>,
@@ -52,6 +52,8 @@
                                                         (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GstElementFactory.html#gst-element-factory-get-metadata" title="gst_element_factory_get_metadata ()">gst_element_factory_get_metadata</a>    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="GstElementFactory.html#gst-element-factory-get-metadata-keys" title="gst_element_factory_get_metadata_keys ()">gst_element_factory_get_metadata_keys</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstElementFactory.html#gst-element-factory-get-num-pad-templates" title="gst_element_factory_get_num_pad_templates ()">gst_element_factory_get_num_pad_templates</a>
                                                         (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
 <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a>          <a class="link" href="GstElementFactory.html#gst-element-factory-get-uri-type" title="gst_element_factory_get_uri_type ()">gst_element_factory_get_uri_type</a>    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
@@ -139,7 +141,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp19312496"></a><p class="title"><b>Example 6. Using an element factory</b></p>
+<a name="idp17385776"></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>
@@ -183,8 +185,8 @@
 <div class="refsect1">
 <a name="GstElementFactory.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstElementFactory-struct"></a><h3>struct GstElementFactory</h3>
-<pre class="programlisting">struct GstElementFactory;</pre>
+<a name="GstElementFactory-struct"></a><h3>GstElementFactory</h3>
+<pre class="programlisting">typedef struct _GstElementFactory GstElementFactory;</pre>
 <p>
 The opaque <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> data structure.
 </p>
@@ -309,6 +311,30 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-element-factory-get-metadata-keys"></a><h3>gst_element_factory_get_metadata_keys ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            gst_element_factory_get_metadata_keys
+                                                        (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
+<p>
+Get the available keys for the metadata on <em class="parameter"><code>factory</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory,</code></em> :</span></p></td>
+<td>a <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of key strings, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
+there is no metadata. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needd.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-element-factory-get-num-pad-templates"></a><h3>gst_element_factory_get_num_pad_templates ()</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_element_factory_get_num_pad_templates
                                                         (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
diff --git a/docs/gst/html/GstObject.html b/docs/gst/html/GstObject.html
index 13bb8b8..049fed9 100644
--- a/docs/gst/html/GstObject.html
+++ b/docs/gst/html/GstObject.html
@@ -185,7 +185,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp27000992"></a><h3>controlled properties</h3>
+<a name="idp27569216"></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
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index 1167786..5487d34 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -502,13 +502,14 @@
 <pre class="programlisting">typedef enum {
   GST_PAD_FLAG_BLOCKED          = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
   GST_PAD_FLAG_FLUSHING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
-  GST_PAD_FLAG_BLOCKING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
-  GST_PAD_FLAG_NEED_PARENT      = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
-  GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
-  GST_PAD_FLAG_PENDING_EVENTS   = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
-  GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
-  GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
-  GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST &lt;&lt; 8),
+  GST_PAD_FLAG_EOS              = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
+  GST_PAD_FLAG_BLOCKING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
+  GST_PAD_FLAG_NEED_PARENT      = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
+  GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
+  GST_PAD_FLAG_PENDING_EVENTS   = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
+  GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
+  GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 8),
+  GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST &lt;&lt; 9),
   /* padding */
   GST_PAD_FLAG_LAST        = (GST_OBJECT_FLAG_LAST &lt;&lt; 16)
 } GstPadFlags;
@@ -526,7 +527,12 @@
 </tr>
 <tr>
 <td><p><a name="GST-PAD-FLAG-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_FLUSHING</code></span></p></td>
-<td>is pad refusing buffers
+<td>is pad flushing
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-FLAG-EOS:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_EOS</code></span></p></td>
+<td>is pad in EOS state
 </td>
 </tr>
 <tr>
diff --git a/docs/gst/html/GstPadTemplate.html b/docs/gst/html/GstPadTemplate.html
index 82811af..f7527bb 100644
--- a/docs/gst/html/GstPadTemplate.html
+++ b/docs/gst/html/GstPadTemplate.html
@@ -132,7 +132,7 @@
 The following code example shows the code to create a pad from a padtemplate.
 </p>
 <div class="example">
-<a name="idp21238544"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
+<a name="idp12278624"></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>
diff --git a/docs/gst/html/GstPluginFeature.html b/docs/gst/html/GstPluginFeature.html
index 72102c5..d1f0d10 100644
--- a/docs/gst/html/GstPluginFeature.html
+++ b/docs/gst/html/GstPluginFeature.html
@@ -42,7 +42,7 @@
 <pre class="synopsis">
 #include &lt;gst/gst.h&gt;
 
-struct              <a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="struct GstPluginFeature">GstPluginFeature</a>;
+                    <a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="GstPluginFeature">GstPluginFeature</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPluginFeature.html#GstPluginFeatureFilter" title="GstPluginFeatureFilter ()">*GstPluginFeatureFilter</a>)           (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 enum                <a class="link" href="GstPluginFeature.html#GstRank" title="enum GstRank">GstRank</a>;
@@ -52,6 +52,7 @@
                                                          name)
 <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>);
 <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>);
@@ -85,8 +86,8 @@
 <div class="refsect1">
 <a name="GstPluginFeature.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstPluginFeature-struct"></a><h3>struct GstPluginFeature</h3>
-<pre class="programlisting">struct GstPluginFeature;</pre>
+<a name="GstPluginFeature-struct"></a><h3>GstPluginFeature</h3>
+<pre class="programlisting">typedef struct _GstPluginFeature GstPluginFeature;</pre>
 <p>
 Opaque <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> structure.
 </p>
@@ -259,6 +260,29 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-plugin-feature-get-plugin"></a><h3>gst_plugin_feature_get_plugin ()</h3>
+<pre class="programlisting"><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="returnvalue">GstPlugin</span></a> *         gst_plugin_feature_get_plugin       (<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 plugin that provides this feature.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>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>.
+Unref with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</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>
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index 1e65197..f672c21 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -49,7 +49,7 @@
 struct              <a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface">GstTagSetterInterface</a>;
 <span class="returnvalue">void</span>                <a class="link" href="GstTagSetter.html#gst-tag-setter-reset-tags" title="gst_tag_setter_reset_tags ()">gst_tag_setter_reset_tags</a>           (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTagSetter.html#gst-tag-setter-merge-tags" title="gst_tag_setter_merge_tags ()">gst_tag_setter_merge_tags</a>           (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTagSetter.html#gst-tag-setter-add-tags" title="gst_tag_setter_add_tags ()">gst_tag_setter_add_tags</a>             (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
@@ -72,7 +72,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *  <a class="link" href="GstTagSetter.html#gst-tag-setter-get-tag-list" title="gst_tag_setter_get_tag_list ()">gst_tag_setter_get_tag_list</a>         (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
+const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *  <a class="link" href="GstTagSetter.html#gst-tag-setter-get-tag-list" title="gst_tag_setter_get_tag_list ()">gst_tag_setter_get_tag_list</a>         (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTagSetter.html#gst-tag-setter-set-tag-merge-mode" title="gst_tag_setter_set_tag_merge_mode ()">gst_tag_setter_set_tag_merge_mode</a>   (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
 <a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="returnvalue">GstTagMergeMode</span></a>     <a class="link" href="GstTagSetter.html#gst-tag-setter-get-tag-merge-mode" title="gst_tag_setter_get_tag_merge_mode ()">gst_tag_setter_get_tag_merge_mode</a>   (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
@@ -224,7 +224,7 @@
 <div class="refsect2">
 <a name="gst-tag-setter-merge-tags"></a><h3>gst_tag_setter_merge_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_setter_merge_tags           (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>
 Merges the given list into the setter's list using the given mode.
@@ -422,7 +422,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-setter-get-tag-list"></a><h3>gst_tag_setter_get_tag_list ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *  gst_tag_setter_get_tag_list         (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *  gst_tag_setter_get_tag_list         (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);</pre>
 <p>
 Returns the current list of tags the setter uses.  The list should not be
 modified or freed.
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index af4e90c..6816cca 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -72,7 +72,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp33150528"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
+<a name="idp27362848"></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>
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index b651c45..c2da1fe 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -1739,7 +1739,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="struct GstElementFactory">GstElementFactory</a>, struct in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
+<a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="GstElementFactory">GstElementFactory</a>, struct in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1847,6 +1847,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstElementFactory.html#gst-element-factory-get-metadata-keys" title="gst_element_factory_get_metadata_keys ()">gst_element_factory_get_metadata_keys</a>, function in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstElementFactory.html#gst-element-factory-get-num-pad-templates" title="gst_element_factory_get_num_pad_templates ()">gst_element_factory_get_num_pad_templates</a>, function in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
 </dt>
 <dd></dd>
@@ -2730,10 +2734,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-is-tag-list" title="gst_is_tag_list ()">gst_is_tag_list</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator">GstIterator</a>, struct in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
 </dt>
 <dd></dd>
@@ -4439,7 +4439,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="struct GstPluginFeature">GstPluginFeature</a>, struct in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
+<a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="GstPluginFeature">GstPluginFeature</a>, struct in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4491,6 +4491,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-plugin" title="gst_plugin_feature_get_plugin ()">gst_plugin_feature_get_plugin</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>
@@ -5887,7 +5891,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>, struct in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList">GstTagList</a>, struct in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6187,10 +6191,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()">gst_tag_list_free</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6307,6 +6307,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-writable" title="gst_tag_list_is_writable()">gst_tag_list_is_writable</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()">gst_tag_list_make_writable</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6339,6 +6347,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()">gst_tag_list_ref</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-remove-tag" title="gst_tag_list_remove_tag ()">gst_tag_list_remove_tag</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6347,6 +6359,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()">gst_tag_list_unref</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#GST-TAG-LOCATION:CAPS" title="GST_TAG_LOCATION">GST_TAG_LOCATION</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6395,6 +6411,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-register-static" title="gst_tag_register_static ()">gst_tag_register_static</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#GST-TAG-SERIAL:CAPS" title="GST_TAG_SERIAL">GST_TAG_SERIAL</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6707,6 +6727,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" title="gst_toc_entry_type_get_nick ()">gst_toc_entry_type_get_nick</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
diff --git a/docs/gst/html/gst-building.html b/docs/gst/html/gst-building.html
index 54d9fa8..be3ad7b 100644
--- a/docs/gst/html/gst-building.html
+++ b/docs/gst/html/gst-building.html
@@ -31,7 +31,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp11675168"></a><h2>Building GStreamer on UNIX</h2>
+<a name="idp7256800"></a><h2>Building GStreamer on UNIX</h2>
 <p>
     On UNIX, GStreamer uses the standard GNU build system,
     using <span class="application">autoconf</span> for package
@@ -92,7 +92,7 @@
   </p>
 </div>
 <div class="refsect1">
-<a name="idp10432048"></a><h2>Building GStreamer Applications</h2>
+<a name="idp9676688"></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 a7fe706..764295b 100644
--- a/docs/gst/html/gst-running.html
+++ b/docs/gst/html/gst-running.html
@@ -31,9 +31,9 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7942416"></a><h2>Running and debugging GStreamer Applications</h2>
+<a name="idp7869392"></a><h2>Running and debugging GStreamer Applications</h2>
 <div class="refsect2">
-<a name="idp8901600"></a><h3>Environment variables</h3>
+<a name="idp11982640"></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>. 
diff --git a/docs/gst/html/gstreamer-Gst.html b/docs/gst/html/gstreamer-Gst.html
index 06c170d..bd6c4a1 100644
--- a/docs/gst/html/gstreamer-Gst.html
+++ b/docs/gst/html/gstreamer-Gst.html
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp7531552"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
+<a name="idp7414080"></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="idp10114464"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
+<a name="idp12345008"></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>
diff --git a/docs/gst/html/gstreamer-GstBuffer.html b/docs/gst/html/gstreamer-GstBuffer.html
index ffe7688..153939c 100644
--- a/docs/gst/html/gstreamer-GstBuffer.html
+++ b/docs/gst/html/gstreamer-GstBuffer.html
@@ -191,7 +191,7 @@
 with a given width, height and bits per plane.
 </p>
 <div class="example">
-<a name="idp12554816"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
+<a name="idp13953280"></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>
@@ -229,7 +229,7 @@
 <p>
 Buffers can contain a list of <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> objects. You can retrieve how many
 memory objects with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()"><code class="function">gst_buffer_n_memory()</code></a> and you can get a pointer
-to memory with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-peek-memory"><code class="function">gst_buffer_peek_memory()</code></a>
+to memory with <code class="function">gst_buffer_peek_memory()</code>
 </p>
 <p>
 A buffer will usually have timestamps, and a duration, but neither of these
diff --git a/docs/gst/html/gstreamer-GstBufferPool.html b/docs/gst/html/gstreamer-GstBufferPool.html
index 57f202b..537aeb7 100644
--- a/docs/gst/html/gstreamer-GstBufferPool.html
+++ b/docs/gst/html/gstreamer-GstBufferPool.html
@@ -628,7 +628,7 @@
 <p>
 <em class="parameter"><code>config</code></em> is a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> that contains the configuration parameters for
 the pool. A default and mandatory set of parameters can be configured with
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferPool.html#gst-buffer-pool-config-set"><code class="function">gst_buffer_pool_config_set()</code></a>. This function takes ownership of <em class="parameter"><code>config</code></em>.
+<code class="function">gst_buffer_pool_config_set()</code>. This function takes ownership of <em class="parameter"><code>config</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/gst/html/gstreamer-GstCaps.html b/docs/gst/html/gstreamer-GstCaps.html
index 32e8d20..ed50c3c 100644
--- a/docs/gst/html/gstreamer-GstCaps.html
+++ b/docs/gst/html/gstreamer-GstCaps.html
@@ -160,7 +160,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp15658784"></a><p class="title"><b>Example 4. Creating caps</b></p>
+<a name="idp16595824"></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>
diff --git a/docs/gst/html/gstreamer-GstEvent.html b/docs/gst/html/gstreamer-GstEvent.html
index dbb850c..0dfda61 100644
--- a/docs/gst/html/gstreamer-GstEvent.html
+++ b/docs/gst/html/gstreamer-GstEvent.html
@@ -93,9 +93,10 @@
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> **segment</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-copy-segment" title="gst_event_copy_segment ()">gst_event_copy_segment</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</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-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-buffer-size" title="gst_event_new_buffer_size ()">gst_event_new_buffer_size</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> minsize</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> maxsize</code></em>,
@@ -147,7 +148,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
+<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-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</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-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-sink-message" title="gst_event_parse_sink_message ()">gst_event_parse_sink_message</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-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> **msg</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-reconfigure" title="gst_event_new_reconfigure ()">gst_event_new_reconfigure</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
@@ -216,7 +218,7 @@
 the needed parameters to specify seeking time and mode.
 </p>
 <div class="example">
-<a name="idp20931696"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
+<a name="idp21515712"></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>
@@ -398,7 +400,7 @@
   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
   GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
   GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
 
   /* non-sticky downstream serialized */
   GST_EVENT_SEGMENT_DONE          = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
@@ -1500,14 +1502,24 @@
 <hr>
 <div class="refsect2">
 <a name="gst-event-new-tag"></a><h3>gst_event_new_tag ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_tag                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_tag                   (<em 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-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
 <p>
 Generates a metadata tag event from the given <em class="parameter"><code>taglist</code></em>.
 </p>
+<p>
+Since the TAG event has the <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY-MULTI:CAPS"><code class="literal">GST_EVENT_TYPE_STICKY_MULTI</code></a> flag set, the
+<em class="parameter"><code>name</code></em> will be used to keep track of multiple tag events.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the event. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
 <td>metadata list. The event will take ownership
 of the taglist. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -1525,7 +1537,7 @@
 <div class="refsect2">
 <a name="gst-event-parse-tag"></a><h3>gst_event_parse_tag ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_tag                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
 <p>
 Parses a tag <em class="parameter"><code>event</code></em> and stores the results in the given <em class="parameter"><code>taglist</code></em> location.
 No reference to the taglist will be returned, it remains valid only until
@@ -1994,8 +2006,8 @@
 </p>
 <p>
 For negative rates, playback will start from the newly configured stop
-position (if any). If the stop position if updated, it must be different from
--1 for negative rates.
+position (if any). If the stop position is updated, it must be different from
+-1 (<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>) for negative rates.
 </p>
 <p>
 It is not possible to seek relative to the current playback position, to do
@@ -2289,16 +2301,24 @@
 <hr>
 <div class="refsect2">
 <a name="gst-event-new-sink-message"></a><h3>gst_event_new_sink_message ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_sink_message          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_sink_message          (<em 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-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
 <p>
 Create a new sink-message event. The purpose of the sink-message event is
 to instruct a sink to post the message contained in the event synchronized
 with the stream.
 </p>
+<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">
 <col align="left" valign="top">
 <tbody>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a name for the event</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to be posted. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
@@ -2637,6 +2657,10 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a name for the event</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
 <td>
 <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.</td>
diff --git a/docs/gst/html/gstreamer-GstGError.html b/docs/gst/html/gstreamer-GstGError.html
index 95800d6..f82a9e1 100644
--- a/docs/gst/html/gstreamer-GstGError.html
+++ b/docs/gst/html/gstreamer-GstGError.html
@@ -115,7 +115,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp10587088"></a><p class="title"><b>Example 7. Throwing an error</b></p>
+<a name="idp6925664"></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>
diff --git a/docs/gst/html/gstreamer-GstIterator.html b/docs/gst/html/gstreamer-GstIterator.html
index 5915092..82147a4 100644
--- a/docs/gst/html/gstreamer-GstIterator.html
+++ b/docs/gst/html/gstreamer-GstIterator.html
@@ -122,7 +122,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp21102944"></a><p class="title"><b>Example 9. Using an iterator</b></p>
+<a name="idp22563824"></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>
diff --git a/docs/gst/html/gstreamer-GstMessage.html b/docs/gst/html/gstreamer-GstMessage.html
index 0e9d89b..c4cf15f 100644
--- a/docs/gst/html/gstreamer-GstMessage.html
+++ b/docs/gst/html/gstreamer-GstMessage.html
@@ -84,9 +84,9 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **gerror</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> **debug</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-tag" title="gst_message_new_tag ()">gst_message_new_tag</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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-tag" title="gst_message_parse_tag ()">gst_message_parse_tag</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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **tag_list</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-buffering" title="gst_message_new_buffering ()">gst_message_new_buffering</a>           (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> percent</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-buffering" title="gst_message_parse_buffering ()">gst_message_parse_buffering</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>,
@@ -273,7 +273,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp29547376"></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="idp30136752"></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>
@@ -1265,7 +1265,7 @@
 <div class="refsect2">
 <a name="gst-message-new-tag"></a><h3>gst_message_new_tag ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_tag                 (<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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);</pre>
 <p>
 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.
@@ -1296,7 +1296,7 @@
 <div class="refsect2">
 <a name="gst-message-parse-tag"></a><h3>gst_message_parse_tag ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_tag               (<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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);</pre>
 <p>
 Extracts the tag list from the GstMessage. The tag list returned in the
 output argument is a copy; the caller must free it when done.
@@ -1330,7 +1330,7 @@
     <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-parse-tag">gst_message_parse_tag</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>tags<span class="gtkdoc opt">);</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Got tags from element %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">));</span>
     <span class="function">handle_tags</span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#gst-tag-list-free">gst_tag_list_free</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#gst-tag-list-unref">gst_tag_list_unref</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
     <span class="keyword">break</span><span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">}</span>
   <span class="gtkdoc opt">...</span>
@@ -2871,7 +2871,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);</pre>
 <p>
-Extract the TOC from the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The TOC returned in the
+Extract thef TOC from the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The TOC returned in the
 output argument is a copy; the caller must free it with
 <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a> when done.
 </p>
diff --git a/docs/gst/html/gstreamer-GstQuery.html b/docs/gst/html/gstreamer-GstQuery.html
index 8e70d71..0e8a04a 100644
--- a/docs/gst/html/gstreamer-GstQuery.html
+++ b/docs/gst/html/gstreamer-GstQuery.html
@@ -287,7 +287,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp39112944"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
+<a name="idp39385888"></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>
@@ -1694,7 +1694,7 @@
 Constructs a new query object for querying the caps.
 </p>
 <p>
-The CAPS query should return the* allowable caps for a pad in the context
+The CAPS query should return the allowable caps for a pad in the context
 of the element's state, its link to other elements, and the devices or files
 it has opened. These caps must be a subset of the pad template caps. In the
 NULL state with no links, the CAPS query should ideally return the same caps
@@ -1709,6 +1709,11 @@
 helps with autoplugging.
 </p>
 <p>
+The <em class="parameter"><code>filter</code></em> is used to restrict the result caps, only the caps matching
+<em class="parameter"><code>filter</code></em> should be returned from the CAPS query. Specifying a filter might
+greatly reduce the amount of processing an element needs to do.
+</p>
+<p>
 Free-function: gst_query_unref
 </p>
 <div class="variablelist"><table border="0">
diff --git a/docs/gst/html/gstreamer-GstStructure.html b/docs/gst/html/gstreamer-GstStructure.html
index e7be901..32ad2d4 100644
--- a/docs/gst/html/gstreamer-GstStructure.html
+++ b/docs/gst/html/gstreamer-GstStructure.html
@@ -2061,8 +2061,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full)L 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.</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>
diff --git a/docs/gst/html/gstreamer-GstTagList.html b/docs/gst/html/gstreamer-GstTagList.html
index ece4620..64d1c15 100644
--- a/docs/gst/html/gstreamer-GstTagList.html
+++ b/docs/gst/html/gstreamer-GstTagList.html
@@ -40,10 +40,10 @@
 <pre class="synopsis">
 #include &lt;gst/gst.h&gt;
 
-                    <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>;
+struct              <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList">GstTagList</a>;
 enum                <a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode">GstTagMergeMode</a>;
 enum                <a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag">GstTagFlag</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()">*GstTagForeachFunc</a>)                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()">*GstTagForeachFunc</a>)                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()">*GstTagMergeFunc</a>)                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
@@ -134,6 +134,12 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *blurb</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()"><span class="type">GstTagMergeFunc</span></a> func</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-register-static" title="gst_tag_register_static ()">gst_tag_register_static</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-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="type">GstTagFlag</span></a> flag</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *blurb</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()"><span class="type">GstTagMergeFunc</span></a> func</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-merge-use-first" title="gst_tag_merge_use_first ()">gst_tag_merge_use_first</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *src</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma" title="gst_tag_merge_strings_with_comma ()">gst_tag_merge_strings_with_comma</a>    (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
@@ -144,145 +150,147 @@
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstTagList.html#gst-tag-get-description" title="gst_tag_get_description ()">gst_tag_get_description</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
 <a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="returnvalue">GstTagFlag</span></a>          <a class="link" href="gstreamer-GstTagList.html#gst-tag-get-flag" title="gst_tag_get_flag ()">gst_tag_get_flag</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-is-fixed" title="gst_tag_is_fixed ()">gst_tag_is_fixed</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()">gst_tag_list_new</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()">gst_tag_list_new</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a>             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-is-tag-list" title="gst_is_tag_list ()">gst_is_tag_list</a>                     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> p</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-empty" title="gst_tag_list_is_empty ()">gst_tag_list_is_empty</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy" title="gst_tag_list_copy ()">gst_tag_list_copy</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-insert" title="gst_tag_list_insert ()">gst_tag_list_insert</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a>             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-empty" title="gst_tag_list_is_empty ()">gst_tag_list_is_empty</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy" title="gst_tag_list_copy ()">gst_tag_list_copy</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()">gst_tag_list_ref</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()">gst_tag_list_unref</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+#define             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-writable" title="gst_tag_list_is_writable()">gst_tag_list_is_writable</a>            (taglist)
+#define             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()">gst_tag_list_make_writable</a>          (taglist)
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-insert" title="gst_tag_list_insert ()">gst_tag_list_insert</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()">gst_tag_list_free</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-tag-size" title="gst_tag_list_get_tag_size ()">gst_tag_list_get_tag_size</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-tag-size" title="gst_tag_list_get_tag_size ()">gst_tag_list_get_tag_size</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-n-tags" title="gst_tag_list_n_tags ()">gst_tag_list_n_tags</a>                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name" title="gst_tag_list_nth_tag_name ()">gst_tag_list_nth_tag_name</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-n-tags" title="gst_tag_list_n_tags ()">gst_tag_list_n_tags</a>                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name" title="gst_tag_list_nth_tag_name ()">gst_tag_list_nth_tag_name</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add" title="gst_tag_list_add ()">gst_tag_list_add</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add" title="gst_tag_list_add ()">gst_tag_list_add</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-value" title="gst_tag_list_add_value ()">gst_tag_list_add_value</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-value" title="gst_tag_list_add_value ()">gst_tag_list_add_value</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-values" title="gst_tag_list_add_values ()">gst_tag_list_add_values</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-values" title="gst_tag_list_add_values ()">gst_tag_list_add_values</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist" title="gst_tag_list_add_valist ()">gst_tag_list_add_valist</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist" title="gst_tag_list_add_valist ()">gst_tag_list_add_valist</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist-values" title="gst_tag_list_add_valist_values ()">gst_tag_list_add_valist_values</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist-values" title="gst_tag_list_add_valist_values ()">gst_tag_list_add_valist_values</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-remove-tag" title="gst_tag_list_remove_tag ()">gst_tag_list_remove_tag</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-remove-tag" title="gst_tag_list_remove_tag ()">gst_tag_list_remove_tag</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()">gst_tag_list_foreach</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()">gst_tag_list_foreach</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()"><span class="type">GstTagForeachFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *      <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-value-index" title="gst_tag_list_get_value_index ()">gst_tag_list_get_value_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *      <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-value-index" title="gst_tag_list_get_value_index ()">gst_tag_list_get_value_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy-value" title="gst_tag_list_copy_value ()">gst_tag_list_copy_value</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean-index" title="gst_tag_list_get_boolean_index ()">gst_tag_list_get_boolean_index</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean-index" title="gst_tag_list_get_boolean_index ()">gst_tag_list_get_boolean_index</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int" title="gst_tag_list_get_int ()">gst_tag_list_get_int</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int" title="gst_tag_list_get_int ()">gst_tag_list_get_int</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int-index" title="gst_tag_list_get_int_index ()">gst_tag_list_get_int_index</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int-index" title="gst_tag_list_get_int_index ()">gst_tag_list_get_int_index</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint" title="gst_tag_list_get_uint ()">gst_tag_list_get_uint</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint" title="gst_tag_list_get_uint ()">gst_tag_list_get_uint</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint-index" title="gst_tag_list_get_uint_index ()">gst_tag_list_get_uint_index</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint-index" title="gst_tag_list_get_uint_index ()">gst_tag_list_get_uint_index</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int64" title="gst_tag_list_get_int64 ()">gst_tag_list_get_int64</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int64" title="gst_tag_list_get_int64 ()">gst_tag_list_get_int64</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int64-index" title="gst_tag_list_get_int64_index ()">gst_tag_list_get_int64_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int64-index" title="gst_tag_list_get_int64_index ()">gst_tag_list_get_int64_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint64" title="gst_tag_list_get_uint64 ()">gst_tag_list_get_uint64</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint64" title="gst_tag_list_get_uint64 ()">gst_tag_list_get_uint64</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint64-index" title="gst_tag_list_get_uint64_index ()">gst_tag_list_get_uint64_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint64-index" title="gst_tag_list_get_uint64_index ()">gst_tag_list_get_uint64_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-float" title="gst_tag_list_get_float ()">gst_tag_list_get_float</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-float" title="gst_tag_list_get_float ()">gst_tag_list_get_float</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-float-index" title="gst_tag_list_get_float_index ()">gst_tag_list_get_float_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-float-index" title="gst_tag_list_get_float_index ()">gst_tag_list_get_float_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-double" title="gst_tag_list_get_double ()">gst_tag_list_get_double</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-double" title="gst_tag_list_get_double ()">gst_tag_list_get_double</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-double-index" title="gst_tag_list_get_double_index ()">gst_tag_list_get_double_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-double-index" title="gst_tag_list_get_double_index ()">gst_tag_list_get_double_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-string" title="gst_tag_list_get_string ()">gst_tag_list_get_string</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-string" title="gst_tag_list_get_string ()">gst_tag_list_get_string</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-string-index" title="gst_tag_list_get_string_index ()">gst_tag_list_get_string_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-string-index" title="gst_tag_list_get_string_index ()">gst_tag_list_get_string_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-peek-string-index" title="gst_tag_list_peek_string_index ()">gst_tag_list_peek_string_index</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-peek-string-index" title="gst_tag_list_peek_string_index ()">gst_tag_list_peek_string_index</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-pointer" title="gst_tag_list_get_pointer ()">gst_tag_list_get_pointer</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-pointer" title="gst_tag_list_get_pointer ()">gst_tag_list_get_pointer</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-pointer-index" title="gst_tag_list_get_pointer_index ()">gst_tag_list_get_pointer_index</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-pointer-index" title="gst_tag_list_get_pointer_index ()">gst_tag_list_get_pointer_index</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date" title="gst_tag_list_get_date ()">gst_tag_list_get_date</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date" title="gst_tag_list_get_date ()">gst_tag_list_get_date</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date-index" title="gst_tag_list_get_date_index ()">gst_tag_list_get_date_index</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date-index" title="gst_tag_list_get_date_index ()">gst_tag_list_get_date_index</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date-time" title="gst_tag_list_get_date_time ()">gst_tag_list_get_date_time</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date-time" title="gst_tag_list_get_date_time ()">gst_tag_list_get_date_time</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date-time-index" title="gst_tag_list_get_date_time_index ()">gst_tag_list_get_date_time_index</a>    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date-time-index" title="gst_tag_list_get_date_time_index ()">gst_tag_list_get_date_time_index</a>    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer" title="gst_tag_list_get_buffer ()">gst_tag_list_get_buffer</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer" title="gst_tag_list_get_buffer ()">gst_tag_list_get_buffer</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" title="gst_tag_list_get_buffer_index ()">gst_tag_list_get_buffer_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" title="gst_tag_list_get_buffer_index ()">gst_tag_list_get_buffer_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);
@@ -303,11 +311,21 @@
 <div class="refsect1">
 <a name="gstreamer-GstTagList.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstTagList"></a><h3>GstTagList</h3>
-<pre class="programlisting">typedef struct _GstTagList GstTagList;</pre>
+<a name="GstTagList"></a><h3>struct GstTagList</h3>
+<pre class="programlisting">struct GstTagList {
+  GstMiniObject mini_object;
+};
+</pre>
 <p>
-Opaque <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> data structure.
+Object describing tags / metadata.
 </p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<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>
+</tr></tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -336,7 +354,7 @@
 <p>
 </p>
 <div class="table">
-<a name="idp43764672"></a><p class="title"><b>Table 1. merge mode</b></p>
+<a name="idp44575472"></a><p class="title"><b>Table 1. merge mode</b></p>
 <div class="table-contents"><table summary="merge mode" border="1">
 <colgroup>
 <col>
@@ -494,7 +512,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTagForeachFunc"></a><h3>GstTagForeachFunc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTagForeachFunc)                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTagForeachFunc)                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
@@ -506,7 +524,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+<td>the <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
 </td>
 </tr>
 <tr>
@@ -1073,7 +1091,7 @@
 <pre class="programlisting">#define GST_TAG_IMAGE                  "image"
 </pre>
 <p>
-image (sample) (sample caps should specify the content type and preferably
+image (sample) (sample taglist should specify the content type and preferably
 also set "image-type" field as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttag.html#GstTagImageType"><span class="type">GstTagImageType</span></a>)
 </p>
 <p class="since">Since 0.10.6</p>
@@ -1085,7 +1103,7 @@
 </pre>
 <p>
 image that is meant for preview purposes, e.g. small icon-sized version
-(sample) (sample caps should specify the content type)
+(sample) (sample taglist should specify the content type)
 </p>
 <p class="since">Since 0.10.7</p>
 </div>
@@ -1095,7 +1113,7 @@
 <pre class="programlisting">#define GST_TAG_ATTACHMENT             "attachment"
 </pre>
 <p>
-generic file attachment (sample) (sample caps should specify the content
+generic file attachment (sample) (sample taglist should specify the content
 type and if possible set "filename" to the file name of the
 attachment)
 </p>
@@ -1484,6 +1502,54 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-tag-register-static"></a><h3>gst_tag_register_static ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_register_static             (<em 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-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="type">GstTagFlag</span></a> flag</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *blurb</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()"><span class="type">GstTagMergeFunc</span></a> func</code></em>);</pre>
+<p>
+Registers a new tag type for the use with GStreamer's type system.
+</p>
+<p>
+Same as <a class="link" href="gstreamer-GstTagList.html#gst-tag-register" title="gst_tag_register ()"><code class="function">gst_tag_register()</code></a>, but <em class="parameter"><code>name</code></em>, <em class="parameter"><code>nick</code></em>, and <em class="parameter"><code>blurb</code></em> must be
+static strings or inlined strings, as they will not be copied. (GStreamer
+plugins will be made resident once loaded, so this function can be used
+even from dynamically loaded plugins.)
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name or identifier string (string constant)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>a flag describing the type of tag info</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>the type this data is in</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
+<td>human-readable name or short description (string constant)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>blurb</code></em> :</span></p></td>
+<td>a human-readable description for this tag (string constant)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>function for merging multiple values of this tag, or NULL</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-tag-merge-use-first"></a><h3>gst_tag_merge_use_first ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_merge_use_first             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *src</code></em>);</pre>
@@ -1663,7 +1729,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new"></a><h3>gst_tag_list_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
 Creates a new taglist and appends the values for the given tags. It expects
@@ -1675,7 +1741,7 @@
 (e.g. strings, buffers).
 </p>
 <p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1690,7 +1756,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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()"><code class="function">gst_tag_list_free()</code></a>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>. Free with <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>
 when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -1701,12 +1767,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new-empty"></a><h3>gst_tag_list_new_empty ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_empty              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_empty              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 Creates a new empty GstTagList.
 </p>
 <p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1720,13 +1786,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new-valist"></a><h3>gst_tag_list_new_valist ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_valist             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_valist             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>
 Just like <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()"><code class="function">gst_tag_list_new()</code></a>, only that it takes a va_list argument.
 Useful mostly for language bindings.
 </p>
 <p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1737,7 +1803,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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()"><code class="function">gst_tag_list_free()</code></a>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>. Free with <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>
 when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -1748,7 +1814,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new-from-string"></a><h3>gst_tag_list_new_from_string ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_from_string        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_from_string        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);</pre>
 <p>
 Deserializes a tag list.
 </p>
@@ -1762,7 +1828,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-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>, or NULL in case of an error.</td>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>, or NULL in case of an error.</td>
 </tr>
 </tbody>
 </table></div>
@@ -1771,7 +1837,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-to-string"></a><h3>gst_tag_list_to_string ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_tag_list_to_string              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_tag_list_to_string              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
 <p>
 Serializes a tag list to a string.
 </p>
@@ -1780,7 +1846,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
 </td>
 </tr>
 <tr>
@@ -1794,29 +1860,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-is-tag-list"></a><h3>gst_is_tag_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_is_tag_list                     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> p</code></em>);</pre>
-<p>
-Checks if the given pointer is a taglist.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
-<td>Object that might be a taglist</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if the given pointer is a taglist</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-tag-list-is-empty"></a><h3>gst_tag_list_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_tag_list_is_empty               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_is_empty               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
 <p>
 Checks if the given taglist is empty.
 </p>
@@ -1825,7 +1870,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1838,8 +1883,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-is-equal"></a><h3>gst_tag_list_is_equal ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_is_equal               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_is_equal               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
 <p>
 Checks if the two given taglists are equal.
 </p>
@@ -1848,11 +1893,11 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list1</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list2</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1865,23 +1910,129 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-copy"></a><h3>gst_tag_list_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_copy                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_copy                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
 <p>
-Copies a given <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.
+Creates a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> as a copy of the old <em class="parameter"><code>taglist</code></em>. The new taglist
+will have a refcount of 1, owned by the caller, and will be writable as
+a result.
 </p>
 <p>
-Free-function: gst_tag_list_free
+Note that this function is the semantic equivalent of a <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>
+followed by a <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()"><code class="function">gst_tag_list_make_writable()</code></a>. If you only want to hold on to a
+reference to the data, you should use <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>
+<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">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>list to copy</td>
+<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>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>copy of the given list. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-ref"></a><h3>gst_tag_list_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_ref                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<p>
+Add a reference to a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> mini object.
+</p>
+<p>
+From this point on, until the caller calls <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> or
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()"><code class="function">gst_tag_list_make_writable()</code></a>, it is guaranteed that the taglist object will
+not change. To use a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> object, you must always have a refcount on
+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">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to reference</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the same <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> mini object.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-unref"></a><h3>gst_tag_list_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_unref                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<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">
+<col align="left" valign="top">
+<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>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-is-writable"></a><h3>gst_tag_list_is_writable()</h3>
+<pre class="programlisting">#define gst_tag_list_is_writable(taglist)    gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (taglist))
+</pre>
+<p>
+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">
+<col align="left" valign="top">
+<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>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-make-writable"></a><h3>gst_tag_list_make_writable()</h3>
+<pre class="programlisting">#define gst_tag_list_make_writable(taglist)   GST_TAG_LIST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (taglist)))
+</pre>
+<p>
+Returns a writable copy of <em class="parameter"><code>taglist</code></em>.
+</p>
+<p>
+If there is only one reference count on <em class="parameter"><code>taglist</code></em>, the caller must be the
+owner, and so this function will return the taglist object unchanged. If on
+the other hand there is more than one reference on the object, a new taglist
+object will be returned (which will be a copy of <em class="parameter"><code>taglist</code></em>). The caller's
+reference on <em class="parameter"><code>taglist</code></em> will be removed, and instead the caller will own a
+reference to the returned object.
+</p>
+<p>
+In short, this function unrefs the taglist in the argument and refs the
+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">
+<col align="left" valign="top">
+<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>. <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 writable taglist which may or may not be the
+same as <em class="parameter"><code>taglist</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -1890,8 +2041,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-insert"></a><h3>gst_tag_list_insert ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_insert                 (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_insert                 (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>
 Inserts the tags of the <em class="parameter"><code>from</code></em> list into the first list using the given mode.
@@ -1917,15 +2068,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-merge"></a><h3>gst_tag_list_merge ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_merge                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_merge                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>
 Merges the two given lists into a new list. If one of the lists is NULL, a
 copy of the other is returned. If both lists are NULL, NULL is returned.
 </p>
 <p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1952,24 +2103,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-tag-list-free"></a><h3>gst_tag_list_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_free                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
-<p>
-Frees the given list and all associated values.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>the list 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>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-tag-list-get-tag-size"></a><h3>gst_tag_list_get_tag_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_tag_list_get_tag_size           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_tag_list_get_tag_size           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>
 Checks how many value are stored in this tag list for the given tag.
@@ -1995,7 +2130,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-n-tags"></a><h3>gst_tag_list_n_tags ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_tag_list_n_tags                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_tag_list_n_tags                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
 <p>
 Get the number of tags in <em class="parameter"><code>list</code></em>.
 </p>
@@ -2004,7 +2139,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -2016,7 +2151,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-nth-tag-name"></a><h3>gst_tag_list_nth_tag_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_list_nth_tag_name           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_list_nth_tag_name           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
 <p>
 Get the name of the tag in <em class="parameter"><code>list</code></em> at <em class="parameter"><code>index</code></em>.
@@ -2026,7 +2161,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
@@ -2042,7 +2177,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-add"></a><h3>gst_tag_list_add ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
@@ -2074,7 +2209,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-add-value"></a><h3>gst_tag_list_add_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_value              (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_value              (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <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>
@@ -2107,7 +2242,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-add-values"></a><h3>gst_tag_list_add_values ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_values             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_values             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
@@ -2139,7 +2274,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-add-valist"></a><h3>gst_tag_list_add_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_valist             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_valist             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
@@ -2171,7 +2306,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-add-valist-values"></a><h3>gst_tag_list_add_valist_values ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_valist_values      (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add_valist_values      (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
@@ -2203,7 +2338,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-remove-tag"></a><h3>gst_tag_list_remove_tag ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_remove_tag             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_remove_tag             (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>
 Removes the given tag from the taglist.
@@ -2225,7 +2360,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-foreach"></a><h3>gst_tag_list_foreach ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_foreach                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_foreach                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()"><span class="type">GstTagForeachFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
@@ -2255,7 +2390,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-value-index"></a><h3>gst_tag_list_get_value_index ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *      gst_tag_list_get_value_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *      gst_tag_list_get_value_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
 <p>
@@ -2267,7 +2402,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
 </td>
 </tr>
 <tr>
@@ -2291,7 +2426,7 @@
 <div class="refsect2">
 <a name="gst-tag-list-copy-value"></a><h3>gst_tag_list_copy_value ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_copy_value             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>
 Copies the contents for the given tag into the value,
@@ -2326,7 +2461,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-boolean"></a><h3>gst_tag_list_get_boolean ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_boolean            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_boolean            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);</pre>
 <p>
@@ -2338,7 +2473,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2360,7 +2495,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-boolean-index"></a><h3>gst_tag_list_get_boolean_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_boolean_index      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_boolean_index      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);</pre>
@@ -2373,7 +2508,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2399,7 +2534,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-int"></a><h3>gst_tag_list_get_int ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);</pre>
 <p>
@@ -2411,7 +2546,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2433,7 +2568,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-int-index"></a><h3>gst_tag_list_get_int_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int_index          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int_index          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);</pre>
@@ -2446,7 +2581,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2472,7 +2607,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-uint"></a><h3>gst_tag_list_get_uint ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);</pre>
 <p>
@@ -2484,7 +2619,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2506,7 +2641,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-uint-index"></a><h3>gst_tag_list_get_uint_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint_index         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint_index         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);</pre>
@@ -2519,7 +2654,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2545,14 +2680,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-int64"></a><h3>gst_tag_list_get_int64 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int64              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int64              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-int64-index"></a><h3>gst_tag_list_get_int64_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int64_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int64_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
@@ -2565,7 +2700,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2591,7 +2726,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-uint64"></a><h3>gst_tag_list_get_uint64 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint64             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint64             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
 <p>
@@ -2603,7 +2738,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2625,7 +2760,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-uint64-index"></a><h3>gst_tag_list_get_uint64_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint64_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint64_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
@@ -2638,7 +2773,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2664,7 +2799,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-float"></a><h3>gst_tag_list_get_float ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_float              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_float              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);</pre>
 <p>
@@ -2676,7 +2811,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2698,7 +2833,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-float-index"></a><h3>gst_tag_list_get_float_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_float_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_float_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);</pre>
@@ -2711,7 +2846,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2737,7 +2872,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-double"></a><h3>gst_tag_list_get_double ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_double             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_double             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);</pre>
 <p>
@@ -2749,7 +2884,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2771,7 +2906,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-double-index"></a><h3>gst_tag_list_get_double_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_double_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_double_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);</pre>
@@ -2784,7 +2919,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2810,7 +2945,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-string"></a><h3>gst_tag_list_get_string ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_string             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_string             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);</pre>
 <p>
@@ -2834,7 +2969,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2856,7 +2991,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-string-index"></a><h3>gst_tag_list_get_string_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_string_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_string_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);</pre>
@@ -2877,7 +3012,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2903,7 +3038,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-peek-string-index"></a><h3>gst_tag_list_peek_string_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_peek_string_index      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_peek_string_index      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);</pre>
@@ -2921,7 +3056,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2947,7 +3082,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-pointer"></a><h3>gst_tag_list_get_pointer ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_pointer            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_pointer            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *value</code></em>);</pre>
 <p>
@@ -2959,7 +3094,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2981,7 +3116,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-pointer-index"></a><h3>gst_tag_list_get_pointer_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_pointer_index      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_pointer_index      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *value</code></em>);</pre>
@@ -2994,7 +3129,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3020,7 +3155,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-date"></a><h3>gst_tag_list_get_date ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</code></em>);</pre>
 <p>
@@ -3036,7 +3171,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3059,7 +3194,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-date-index"></a><h3>gst_tag_list_get_date_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date_index         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date_index         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</code></em>);</pre>
@@ -3076,7 +3211,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3102,7 +3237,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-date-time"></a><h3>gst_tag_list_get_date_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_tag_list_get_date_time          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date_time          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);</pre>
 <p>
@@ -3118,7 +3253,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3142,7 +3277,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-date-time-index"></a><h3>gst_tag_list_get_date_time_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date_time_index    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_date_time_index    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);</pre>
@@ -3159,7 +3294,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3186,7 +3321,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-buffer"></a><h3>gst_tag_list_get_buffer ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_buffer             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_buffer             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);</pre>
 <p>
@@ -3202,7 +3337,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3226,7 +3361,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-get-buffer-index"></a><h3>gst_tag_list_get_buffer_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_buffer_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_buffer_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);</pre>
@@ -3243,7 +3378,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstToc.html b/docs/gst/html/gstreamer-GstToc.html
index 716c27c..f7135f9 100644
--- a/docs/gst/html/gstreamer-GstToc.html
+++ b/docs/gst/html/gstreamer-GstToc.html
@@ -47,7 +47,7 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
 <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" title="gst_toc_entry_new_with_pad ()">gst_toc_entry_new_with_pad</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> pad</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()">gst_toc_entry_free</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
 <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-new" title="gst_toc_new ()">gst_toc_new</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()">gst_toc_free</a>                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
@@ -61,6 +61,7 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" title="gst_toc_entry_set_start_stop ()">gst_toc_entry_set_start_stop</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
+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-GstToc.html#gst-toc-entry-type-get-nick" title="gst_toc_entry_type_get_nick ()">gst_toc_entry_type_get_nick</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -127,7 +128,7 @@
 <td>list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> entries of the TOC.</td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstToc.tags"></a>tags</code></em>;</span></p></td>
+<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstToc.tags"></a>tags</code></em>;</span></p></td>
 <td>tags related to the whole TOC.</td>
 </tr>
 <tr>
@@ -176,7 +177,7 @@
 <td>list of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> objects, related to this <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a>.</td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstTocEntry.tags"></a>tags</code></em>;</span></p></td>
+<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstTocEntry.tags"></a>tags</code></em>;</span></p></td>
 <td>tags related to this entry.</td>
 </tr>
 <tr>
@@ -245,7 +246,7 @@
 <a name="gst-toc-entry-new-with-pad"></a><h3>gst_toc_entry_new_with_pad ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_new_with_pad          (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> pad</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure with <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> related.
 </p>
@@ -468,6 +469,28 @@
 </table></div>
 <p class="since">Since 0.10.37</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-type-get-nick"></a><h3>gst_toc_entry_type_get_nick ()</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_toc_entry_type_get_nick         (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>);</pre>
+<p>
+Converts <em class="parameter"><code>type</code></em> to a string representation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Returns the human-readable <em class="parameter"><code>type</code></em>. Can be NULL if an error occurred.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.11.92</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstToc.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer.devhelp2 b/docs/gst/html/gstreamer.devhelp2
index a0e5b45..7c148fe 100644
--- a/docs/gst/html/gstreamer.devhelp2
+++ b/docs/gst/html/gstreamer.devhelp2
@@ -70,7 +70,7 @@
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
-    <keyword type="" name="Environment variables" link="gst-running.html#idp8901600"/>
+    <keyword type="" name="Environment variables" link="gst-running.html#idp11982640"/>
     <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"/>
@@ -91,7 +91,7 @@
     <keyword type="function" name="gst_atomic_queue_peek ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek" since="0.10.33"/>
     <keyword type="function" name="gst_atomic_queue_pop ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop" since="0.10.33"/>
     <keyword type="function" name="gst_atomic_queue_length ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-length" since="0.10.33"/>
-    <keyword type="" name="Notes" link="GstBin.html#idp11074672"/>
+    <keyword type="" name="Notes" link="GstBin.html#idp10089840"/>
     <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"/>
@@ -538,11 +538,12 @@
     <keyword type="signal" name="The &quot;no-more-pads&quot; signal" link="GstElement.html#GstElement-no-more-pads"/>
     <keyword type="signal" name="The &quot;pad-added&quot; signal" link="GstElement.html#GstElement-pad-added"/>
     <keyword type="signal" name="The &quot;pad-removed&quot; signal" link="GstElement.html#GstElement-pad-removed"/>
-    <keyword type="struct" name="struct GstElementFactory" link="GstElementFactory.html#GstElementFactory-struct"/>
+    <keyword type="struct" name="GstElementFactory" link="GstElementFactory.html#GstElementFactory-struct"/>
     <keyword type="function" name="gst_element_register ()" link="GstElementFactory.html#gst-element-register"/>
     <keyword type="function" name="gst_element_factory_find ()" link="GstElementFactory.html#gst-element-factory-find"/>
     <keyword type="function" name="gst_element_factory_get_element_type ()" link="GstElementFactory.html#gst-element-factory-get-element-type"/>
     <keyword type="function" name="gst_element_factory_get_metadata ()" link="GstElementFactory.html#gst-element-factory-get-metadata"/>
+    <keyword type="function" name="gst_element_factory_get_metadata_keys ()" link="GstElementFactory.html#gst-element-factory-get-metadata-keys"/>
     <keyword type="function" name="gst_element_factory_get_num_pad_templates ()" link="GstElementFactory.html#gst-element-factory-get-num-pad-templates"/>
     <keyword type="function" name="gst_element_factory_get_uri_type ()" link="GstElementFactory.html#gst-element-factory-get-uri-type"/>
     <keyword type="function" name="gst_element_factory_get_uri_protocols ()" link="GstElementFactory.html#gst-element-factory-get-uri-protocols"/>
@@ -890,7 +891,7 @@
     <keyword type="function" name="gst_mini_object_replace ()" link="gstreamer-GstMiniObject.html#gst-mini-object-replace"/>
     <keyword type="function" name="gst_mini_object_steal ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal"/>
     <keyword type="function" name="gst_mini_object_take ()" link="gstreamer-GstMiniObject.html#gst-mini-object-take"/>
-    <keyword type="" name="controlled properties" link="GstObject.html#idp27000992"/>
+    <keyword type="" name="controlled properties" link="GstObject.html#idp27569216"/>
     <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"/>
@@ -1161,13 +1162,14 @@
     <keyword type="enum" name="enum GstPluginDependencyFlags" link="GstPlugin.html#GstPluginDependencyFlags" since="0.10.22"/>
     <keyword type="function" name="gst_plugin_add_dependency ()" link="GstPlugin.html#gst-plugin-add-dependency" since="0.10.22"/>
     <keyword type="function" name="gst_plugin_add_dependency_simple ()" link="GstPlugin.html#gst-plugin-add-dependency-simple" since="0.10.22"/>
-    <keyword type="struct" name="struct GstPluginFeature" link="GstPluginFeature.html#GstPluginFeature-struct"/>
+    <keyword type="struct" name="GstPluginFeature" link="GstPluginFeature.html#GstPluginFeature-struct"/>
     <keyword type="function" name="GstPluginFeatureFilter ()" link="GstPluginFeature.html#GstPluginFeatureFilter"/>
     <keyword type="enum" name="enum GstRank" link="GstPluginFeature.html#GstRank"/>
     <keyword type="function" name="gst_plugin_feature_set_rank ()" link="GstPluginFeature.html#gst-plugin-feature-set-rank"/>
     <keyword type="macro" name="gst_plugin_feature_set_name()" link="GstPluginFeature.html#gst-plugin-feature-set-name"/>
     <keyword type="function" name="gst_plugin_feature_get_rank ()" link="GstPluginFeature.html#gst-plugin-feature-get-rank"/>
     <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_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" since="0.10.26"/>
     <keyword type="function" name="gst_plugin_feature_list_free ()" link="GstPluginFeature.html#gst-plugin-feature-list-free"/>
@@ -1408,7 +1410,7 @@
     <keyword type="struct" name="struct GstSystemClock" link="GstSystemClock.html#GstSystemClock-struct"/>
     <keyword type="function" name="gst_system_clock_obtain ()" link="GstSystemClock.html#gst-system-clock-obtain"/>
     <keyword type="property" name="The &quot;clock-type&quot; property" link="GstSystemClock.html#GstSystemClock--clock-type"/>
-    <keyword type="struct" name="GstTagList" link="gstreamer-GstTagList.html#GstTagList"/>
+    <keyword type="struct" name="struct GstTagList" link="gstreamer-GstTagList.html#GstTagList"/>
     <keyword type="enum" name="enum GstTagMergeMode" link="gstreamer-GstTagList.html#GstTagMergeMode"/>
     <keyword type="enum" name="enum GstTagFlag" link="gstreamer-GstTagList.html#GstTagFlag"/>
     <keyword type="function" name="GstTagForeachFunc ()" link="gstreamer-GstTagList.html#GstTagForeachFunc"/>
@@ -1494,6 +1496,7 @@
     <keyword type="macro" name="GST_TAG_APPLICATION_DATA" link="gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS" since="0.10.31"/>
     <keyword type="macro" name="GST_TAG_IMAGE_ORIENTATION" link="gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS" since="0.10.30"/>
     <keyword type="function" name="gst_tag_register ()" link="gstreamer-GstTagList.html#gst-tag-register"/>
+    <keyword type="function" name="gst_tag_register_static ()" link="gstreamer-GstTagList.html#gst-tag-register-static"/>
     <keyword type="function" name="gst_tag_merge_use_first ()" link="gstreamer-GstTagList.html#gst-tag-merge-use-first"/>
     <keyword type="function" name="gst_tag_merge_strings_with_comma ()" link="gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma"/>
     <keyword type="function" name="gst_tag_exists ()" link="gstreamer-GstTagList.html#gst-tag-exists"/>
@@ -1507,13 +1510,15 @@
     <keyword type="function" name="gst_tag_list_new_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-new-valist" since="0.10.24"/>
     <keyword type="function" name="gst_tag_list_new_from_string ()" link="gstreamer-GstTagList.html#gst-tag-list-new-from-string" since="0.10.36"/>
     <keyword type="function" name="gst_tag_list_to_string ()" link="gstreamer-GstTagList.html#gst-tag-list-to-string" since="0.10.36"/>
-    <keyword type="function" name="gst_is_tag_list ()" link="gstreamer-GstTagList.html#gst-is-tag-list"/>
     <keyword type="function" name="gst_tag_list_is_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-is-empty" since="0.10.11"/>
     <keyword type="function" name="gst_tag_list_is_equal ()" link="gstreamer-GstTagList.html#gst-tag-list-is-equal" since="0.10.36"/>
     <keyword type="function" name="gst_tag_list_copy ()" link="gstreamer-GstTagList.html#gst-tag-list-copy"/>
+    <keyword type="function" name="gst_tag_list_ref ()" link="gstreamer-GstTagList.html#gst-tag-list-ref"/>
+    <keyword type="function" name="gst_tag_list_unref ()" link="gstreamer-GstTagList.html#gst-tag-list-unref"/>
+    <keyword type="macro" name="gst_tag_list_is_writable()" link="gstreamer-GstTagList.html#gst-tag-list-is-writable"/>
+    <keyword type="macro" name="gst_tag_list_make_writable()" link="gstreamer-GstTagList.html#gst-tag-list-make-writable"/>
     <keyword type="function" name="gst_tag_list_insert ()" link="gstreamer-GstTagList.html#gst-tag-list-insert"/>
     <keyword type="function" name="gst_tag_list_merge ()" link="gstreamer-GstTagList.html#gst-tag-list-merge"/>
-    <keyword type="function" name="gst_tag_list_free ()" link="gstreamer-GstTagList.html#gst-tag-list-free"/>
     <keyword type="function" name="gst_tag_list_get_tag_size ()" link="gstreamer-GstTagList.html#gst-tag-list-get-tag-size"/>
     <keyword type="function" name="gst_tag_list_n_tags ()" link="gstreamer-GstTagList.html#gst-tag-list-n-tags"/>
     <keyword type="function" name="gst_tag_list_nth_tag_name ()" link="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name"/>
@@ -1606,6 +1611,7 @@
     <keyword type="function" name="gst_toc_find_entry ()" link="gstreamer-GstToc.html#gst-toc-find-entry" since="0.10.37"/>
     <keyword type="function" name="gst_toc_entry_get_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" since="0.10.37"/>
     <keyword type="function" name="gst_toc_entry_set_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_entry_type_get_nick ()" link="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" since="0.11.92"/>
     <keyword type="struct" name="GstTocSetter" link="gstreamer-GstTocSetter.html#GstTocSetter"/>
     <keyword type="struct" name="struct GstTocSetterIFace" link="gstreamer-GstTocSetter.html#GstTocSetterIFace"/>
     <keyword type="function" name="gst_toc_setter_get_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" since="0.10.37"/>
@@ -2150,6 +2156,7 @@
     <keyword type="constant" name="GST_PAD_SINK" link="GstPad.html#GST-PAD-SINK:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_BLOCKED" link="GstPad.html#GST-PAD-FLAG-BLOCKED:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_FLUSHING" link="GstPad.html#GST-PAD-FLAG-FLUSHING:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_EOS" link="GstPad.html#GST-PAD-FLAG-EOS:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_BLOCKING" link="GstPad.html#GST-PAD-FLAG-BLOCKING:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_NEED_PARENT" link="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_NEED_RECONFIGURE" link="GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS"/>
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index 7bf76d8..9b735b9 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -15,7 +15,7 @@
 <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 (0.11.90.1)
+      for GStreamer Core 1.0 (0.11.91.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</a>.
     </p></div>
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index 9aebeb6..cabc165 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -648,6 +648,7 @@
 <ANCHOR id="gst-element-factory-find" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-find">
 <ANCHOR id="gst-element-factory-get-element-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-element-type">
 <ANCHOR id="gst-element-factory-get-metadata" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-metadata">
+<ANCHOR id="gst-element-factory-get-metadata-keys" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-metadata-keys">
 <ANCHOR id="gst-element-factory-get-num-pad-templates" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-num-pad-templates">
 <ANCHOR id="gst-element-factory-get-uri-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-uri-type">
 <ANCHOR id="gst-element-factory-get-uri-protocols" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-uri-protocols">
@@ -1280,6 +1281,7 @@
 <ANCHOR id="GstPadFlags" href="gstreamer-1.0/GstPad.html#GstPadFlags">
 <ANCHOR id="GST-PAD-FLAG-BLOCKED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-BLOCKED:CAPS">
 <ANCHOR id="GST-PAD-FLAG-FLUSHING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-FLUSHING:CAPS">
+<ANCHOR id="GST-PAD-FLAG-EOS:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-EOS:CAPS">
 <ANCHOR id="GST-PAD-FLAG-BLOCKING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-BLOCKING:CAPS">
 <ANCHOR id="GST-PAD-FLAG-NEED-PARENT:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS">
 <ANCHOR id="GST-PAD-FLAG-NEED-RECONFIGURE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS">
@@ -1629,6 +1631,7 @@
 <ANCHOR id="gst-plugin-feature-set-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-set-name">
 <ANCHOR id="gst-plugin-feature-get-rank" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-rank">
 <ANCHOR id="gst-plugin-feature-get-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-name">
+<ANCHOR id="gst-plugin-feature-get-plugin" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-plugin">
 <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">
@@ -2046,6 +2049,7 @@
 <ANCHOR id="GST-TAG-APPLICATION-DATA:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS">
 <ANCHOR id="GST-TAG-IMAGE-ORIENTATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS">
 <ANCHOR id="gst-tag-register" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-register">
+<ANCHOR id="gst-tag-register-static" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-register-static">
 <ANCHOR id="gst-tag-merge-use-first" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-merge-use-first">
 <ANCHOR id="gst-tag-merge-strings-with-comma" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma">
 <ANCHOR id="gst-tag-exists" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-exists">
@@ -2059,13 +2063,15 @@
 <ANCHOR id="gst-tag-list-new-valist" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-valist">
 <ANCHOR id="gst-tag-list-new-from-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-from-string">
 <ANCHOR id="gst-tag-list-to-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-to-string">
-<ANCHOR id="gst-is-tag-list" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-is-tag-list">
 <ANCHOR id="gst-tag-list-is-empty" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-empty">
 <ANCHOR id="gst-tag-list-is-equal" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-equal">
 <ANCHOR id="gst-tag-list-copy" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-copy">
+<ANCHOR id="gst-tag-list-ref" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-ref">
+<ANCHOR id="gst-tag-list-unref" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-unref">
+<ANCHOR id="gst-tag-list-is-writable" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-writable">
+<ANCHOR id="gst-tag-list-make-writable" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-make-writable">
 <ANCHOR id="gst-tag-list-insert" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-insert">
 <ANCHOR id="gst-tag-list-merge" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-merge">
-<ANCHOR id="gst-tag-list-free" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-free">
 <ANCHOR id="gst-tag-list-get-tag-size" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-tag-size">
 <ANCHOR id="gst-tag-list-n-tags" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-n-tags">
 <ANCHOR id="gst-tag-list-nth-tag-name" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-nth-tag-name">
@@ -2185,6 +2191,7 @@
 <ANCHOR id="gst-toc-find-entry" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-find-entry">
 <ANCHOR id="gst-toc-entry-get-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-start-stop">
 <ANCHOR id="gst-toc-entry-set-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-set-start-stop">
+<ANCHOR id="gst-toc-entry-type-get-nick" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-type-get-nick">
 <ANCHOR id="gstreamer-GstToc.see-also" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.see-also">
 <ANCHOR id="gstreamer-GstTocSetter" href="gstreamer-1.0/gstreamer-GstTocSetter.html">
 <ANCHOR id="gstreamer-GstTocSetter.synopsis" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.synopsis">
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 980ba1a..7b7f275 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -69,6 +69,7 @@
 POST_UNINSTALL = :
 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
@@ -240,6 +241,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -392,7 +397,11 @@
 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@
diff --git a/docs/libs/html/GstBaseSink.html b/docs/libs/html/GstBaseSink.html
index 8aa1d9f..ccdf82e 100644
--- a/docs/libs/html/GstBaseSink.html
+++ b/docs/libs/html/GstBaseSink.html
@@ -329,6 +329,10 @@
   /* wait for eos, subclasses should chain up to parent first */
   GstFlowReturn (*wait_eos)     (GstBaseSink *sink, GstEvent *event);
 
+  /* notify subclass of buffer or list before doing sync */
+  GstFlowReturn (*prepare)      (GstBaseSink *sink, GstBuffer *buffer);
+  GstFlowReturn (*prepare_list) (GstBaseSink *sink, GstBufferList *buffer_list);
+
   /* notify subclass of preroll buffer or real buffer */
   GstFlowReturn (*preroll)      (GstBaseSink *sink, GstBuffer *buffer);
   GstFlowReturn (*render)       (GstBaseSink *sink, GstBuffer *buffer);
@@ -410,8 +414,18 @@
 subclasses should always first chain up to the default implementation.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.prepare"></a>prepare</code></em> ()</span></p></td>
+<td>Called to prepare the buffer for <em class="parameter"><code>render</code></em> and <em class="parameter"><code>preroll</code></em>. This
+function is called before synchronisation is performed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.prepare-list"></a>prepare_list</code></em> ()</span></p></td>
+<td>Called to prepare the buffer list for <em class="parameter"><code>render_list</code></em>. This
+function is called before synchronisation is performed.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.preroll"></a>preroll</code></em> ()</span></p></td>
-<td>Called to present the preroll buffer if desired</td>
+<td>Called to present the preroll buffer if desired.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.render"></a>render</code></em> ()</span></p></td>
diff --git a/docs/libs/html/GstBaseSrc.html b/docs/libs/html/GstBaseSrc.html
index cedaec4..067e0a7 100644
--- a/docs/libs/html/GstBaseSrc.html
+++ b/docs/libs/html/GstBaseSrc.html
@@ -236,7 +236,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9630832"></a><h3>Controlled shutdown of live sources in applications</h3>
+<a name="idp7055728"></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
diff --git a/docs/libs/html/GstBaseTransform.html b/docs/libs/html/GstBaseTransform.html
index 743b1f7..2c89ce9 100644
--- a/docs/libs/html/GstBaseTransform.html
+++ b/docs/libs/html/GstBaseTransform.html
@@ -111,7 +111,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8941488"></a><h3>Use Cases</h3>
+<a name="idp6939712"></a><h3>Use Cases</h3>
 <p>
 </p>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -251,7 +251,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp8166288"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
+<a name="idp7842576"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
 <p>
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
diff --git a/docs/libs/html/gstreamer-libs.devhelp2 b/docs/libs/html/gstreamer-libs.devhelp2
index f1f78d5..a6b28f9 100644
--- a/docs/libs/html/gstreamer-libs.devhelp2
+++ b/docs/libs/html/gstreamer-libs.devhelp2
@@ -64,7 +64,7 @@
     <keyword type="macro" name="GST_BASE_PARSE_LOST_SYNC()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS" since="0.10.33"/>
     <keyword type="macro" name="GST_BASE_PARSE_SINK_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS" since="0.10.33"/>
     <keyword type="macro" name="GST_BASE_PARSE_SRC_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS" since="0.10.33"/>
-    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp9630832"/>
+    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp7055728"/>
     <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"/>
@@ -129,8 +129,8 @@
     <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#idp8941488"/>
-    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp8166288"/>
+    <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp6939712"/>
+    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp7842576"/>
     <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"/>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index b3cb126..bf26df4 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
 <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 (0.11.90.1)
+      for GStreamer Library 1.0 (0.11.91.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>
diff --git a/docs/manual/Makefile.in b/docs/manual/Makefile.in
index 5546c4f..87fcbf8 100644
--- a/docs/manual/Makefile.in
+++ b/docs/manual/Makefile.in
@@ -73,6 +73,7 @@
 POST_UNINSTALL = :
 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
@@ -271,6 +272,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -423,7 +428,11 @@
 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@
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 34b0949..611fd09 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -67,6 +67,7 @@
 POST_UNINSTALL = :
 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
@@ -236,6 +237,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -388,7 +393,11 @@
 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@
diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args
index bf93dad..6c8b21a 100644
--- a/docs/plugins/gstreamer-plugins.args
+++ b/docs/plugins/gstreamer-plugins.args
@@ -1084,7 +1084,27 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Sync Streams</NICK>
-<BLURB>Synchronize inactive streams to the running time of the active stream.</BLURB>
+<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/html/ch01.html b/docs/plugins/html/ch01.html
index 4ce3974..2d6be16 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp4169280"></a>gstreamer Elements</h2></div></div></div>
+<a name="idp3396736"></a>gstreamer Elements</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-capsfilter.html">capsfilter</a></span><span class="refpurpose"> — Pass data without modification, limiting formats</span>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 64c6e46..71508b0 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp275968"></a>gstreamer Plugins</h2></div></div></div>
+<a name="idp235456"></a>gstreamer Plugins</h2></div></div></div>
 <div class="toc"><dl><dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose"> — <a name="plugin-coreelements"></a>standard GStreamer elements</span>
 </dt></dl></div>
diff --git a/docs/plugins/html/gstreamer-plugins-capsfilter.html b/docs/plugins/html/gstreamer-plugins-capsfilter.html
index 8571db3..c3e8f2c 100644
--- a/docs/plugins/html/gstreamer-plugins-capsfilter.html
+++ b/docs/plugins/html/gstreamer-plugins-capsfilter.html
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7244064"></a><h3>Example launch line</h3>
+<a name="idp7212656"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -88,7 +88,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8108768"></a><h3>Element Information</h3>
+<a name="idp7705936"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -111,7 +111,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp81344"></a><h3>Element Pads</h3>
+<a name="idp135056"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesink.html b/docs/plugins/html/gstreamer-plugins-fakesink.html
index f579a81..c45b9e0 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesink.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesink.html
@@ -86,7 +86,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9286240"></a><h3>Example launch line</h3>
+<a name="idp6480224"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10003392"></a><h3>Element Information</h3>
+<a name="idp6482832"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -127,7 +127,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10010928"></a><h3>Element Pads</h3>
+<a name="idp10479328"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesrc.html b/docs/plugins/html/gstreamer-plugins-fakesrc.html
index fd7ebbb..bdd5b83 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesrc.html
@@ -102,7 +102,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7348848"></a><h3>Example launch line</h3>
+<a name="idp5917840"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -124,7 +124,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7352032"></a><h3>Element Information</h3>
+<a name="idp5921024"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -147,7 +147,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7359440"></a><h3>Element Pads</h3>
+<a name="idp5928432"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsink.html b/docs/plugins/html/gstreamer-plugins-fdsink.html
index 1feab11..1c74c3a 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsink.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsink.html
@@ -85,7 +85,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9210352"></a><h3>Element Information</h3>
+<a name="idp9141056"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -108,7 +108,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9133200"></a><h3>Element Pads</h3>
+<a name="idp6713600"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsrc.html b/docs/plugins/html/gstreamer-plugins-fdsrc.html
index 6326bb7..e0519c8 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsrc.html
@@ -97,7 +97,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6457056"></a><h3>Example launch line</h3>
+<a name="idp8708016"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -119,7 +119,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6460208"></a><h3>Element Information</h3>
+<a name="idp8711168"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -142,7 +142,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10135952"></a><h3>Element Pads</h3>
+<a name="idp8718624"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-filesink.html b/docs/plugins/html/gstreamer-plugins-filesink.html
index 3409245..8797496 100644
--- a/docs/plugins/html/gstreamer-plugins-filesink.html
+++ b/docs/plugins/html/gstreamer-plugins-filesink.html
@@ -80,7 +80,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9711680"></a><h3>Example launch line</h3>
+<a name="idp6187584"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,7 +98,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9714240"></a><h3>Element Information</h3>
+<a name="idp6190144"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -121,7 +121,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9721648"></a><h3>Element Pads</h3>
+<a name="idp6197552"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-filesrc.html b/docs/plugins/html/gstreamer-plugins-filesrc.html
index d0bf096..5c8c3f0 100644
--- a/docs/plugins/html/gstreamer-plugins-filesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-filesrc.html
@@ -82,7 +82,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9089696"></a><h3>Example launch line</h3>
+<a name="idp10794768"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -100,7 +100,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9092304"></a><h3>Element Information</h3>
+<a name="idp10797376"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -123,7 +123,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10170896"></a><h3>Element Pads</h3>
+<a name="idp10848016"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-funnel.html b/docs/plugins/html/gstreamer-plugins-funnel.html
index d1bca75..4a58439 100644
--- a/docs/plugins/html/gstreamer-plugins-funnel.html
+++ b/docs/plugins/html/gstreamer-plugins-funnel.html
@@ -68,7 +68,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6849904"></a><h3>Element Information</h3>
+<a name="idp9944992"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -91,7 +91,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6604704"></a><h3>Element Pads</h3>
+<a name="idp9858432"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-identity.html b/docs/plugins/html/gstreamer-plugins-identity.html
index 32b5e31..6f7cbfe 100644
--- a/docs/plugins/html/gstreamer-plugins-identity.html
+++ b/docs/plugins/html/gstreamer-plugins-identity.html
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10472176"></a><h3>Element Information</h3>
+<a name="idp11113760"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10479632"></a><h3>Element Pads</h3>
+<a name="idp11121216"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-input-selector.html b/docs/plugins/html/gstreamer-plugins-input-selector.html
index 17029ce..84070e4 100644
--- a/docs/plugins/html/gstreamer-plugins-input-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-input-selector.html
@@ -63,6 +63,8 @@
   "<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--sync-mode" title='The "sync-mode" property'>sync-mode</a>"                <span class="type">GstInputSelectorSyncMode</span>  : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -103,7 +105,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9842896"></a><h3>Element Information</h3>
+<a name="idp11337552"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -126,7 +128,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10612512"></a><h3>Element Pads</h3>
+<a name="idp11345088"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -210,13 +212,49 @@
 <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. This makes sure that no
-buffers are dropped by input-selector that might be needed
-when switching the active pad.
+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>
 <p class="since">Since 0.10.36</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>
+If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> and GstInputSelector:sync-streams is also set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
+the active pad will cache the buffers still considered valid (after current
+running time, see sync-mode) to avoid missing frames if/when the pad is
+reactivated.
+</p>
+<p>
+The active pad may push more buffers than what is currently displayed/consumed
+and when changing pads those buffers will be discarded and the only way to
+reactivate that pad without loosing the already consumed buffers is to enable cache.
+</p>
+<p>Default value: FALSE</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>
+Select how input-selector will sync buffers when in sync-streams mode.
+</p>
+<p>
+Note that when using the "active-segment" mode, the "active-segment" may
+be ahead of current clock time when switching the active pad, as the current
+active pad may have pushed more buffers than what was displayed/consumed,
+which may cause delays and some missing buffers.
+</p>
+<p>Default value: Sync using the current active segment</p>
+<p class="since">Since 0.10.36</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-input-selector.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-multiqueue.html b/docs/plugins/html/gstreamer-plugins-multiqueue.html
index 8b6f452..9c9ab07 100644
--- a/docs/plugins/html/gstreamer-plugins-multiqueue.html
+++ b/docs/plugins/html/gstreamer-plugins-multiqueue.html
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10414640"></a><p>
+<a name="idp11098736"></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>
@@ -173,7 +173,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10854272"></a><h3>Element Information</h3>
+<a name="idp11562752"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,7 +196,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10861728"></a><h3>Element Pads</h3>
+<a name="idp11570208"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-output-selector.html b/docs/plugins/html/gstreamer-plugins-output-selector.html
index 9740086..8eee32f 100644
--- a/docs/plugins/html/gstreamer-plugins-output-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-output-selector.html
@@ -70,7 +70,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10445936"></a><h3>Element Information</h3>
+<a name="idp10403120"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10698096"></a><h3>Element Pads</h3>
+<a name="idp10615680"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index b6d073a..f1919dc 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -28,7 +28,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7693648"></a><h2>Plugin Information</h2>
+<a name="idp7200880"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -38,7 +38,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.11.91</td>
+<td>0.11.92</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -56,7 +56,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7977664"></a><h2>Elements</h2>
+<a name="idp6375472"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-queue.html b/docs/plugins/html/gstreamer-plugins-queue.html
index f3e00b7..68445d8 100644
--- a/docs/plugins/html/gstreamer-plugins-queue.html
+++ b/docs/plugins/html/gstreamer-plugins-queue.html
@@ -122,7 +122,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11058880"></a><h3>Element Information</h3>
+<a name="idp11696976"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -145,7 +145,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11066336"></a><h3>Element Pads</h3>
+<a name="idp11704432"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-queue2.html b/docs/plugins/html/gstreamer-plugins-queue2.html
index f8ddc46..4daac17 100644
--- a/docs/plugins/html/gstreamer-plugins-queue2.html
+++ b/docs/plugins/html/gstreamer-plugins-queue2.html
@@ -95,7 +95,7 @@
 two seconds worth of data, whichever is reached first.
 </p>
 <p>
-If you set temp-tmpl to a value such as /tmp/gstreamer-XXXXXX, the element
+If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element
 will allocate a random free filename and buffer data in the file.
 By using this, it will buffer the entire stream data on the file independently
 of the queue size limits, they will only be used for buffering statistics.
@@ -112,7 +112,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11373072"></a><h3>Element Information</h3>
+<a name="idp11966144"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -135,7 +135,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11380480"></a><h3>Element Pads</h3>
+<a name="idp11973552"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-tee.html b/docs/plugins/html/gstreamer-plugins-tee.html
index fca4137..5725672 100644
--- a/docs/plugins/html/gstreamer-plugins-tee.html
+++ b/docs/plugins/html/gstreamer-plugins-tee.html
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11219408"></a><h3>Example launch line</h3>
+<a name="idp6936944"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,7 +102,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11222128"></a><h3>Element Information</h3>
+<a name="idp6939664"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -125,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11485952"></a><h3>Element Pads</h3>
+<a name="idp12121888"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-typefind.html b/docs/plugins/html/gstreamer-plugins-typefind.html
index 1989c0e..1711b17 100644
--- a/docs/plugins/html/gstreamer-plugins-typefind.html
+++ b/docs/plugins/html/gstreamer-plugins-typefind.html
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11281248"></a><h3>Element Information</h3>
+<a name="idp11522416"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11288656"></a><h3>Element Pads</h3>
+<a name="idp11529824"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-valve.html b/docs/plugins/html/gstreamer-plugins-valve.html
index 6b72efd..41d9808 100644
--- a/docs/plugins/html/gstreamer-plugins-valve.html
+++ b/docs/plugins/html/gstreamer-plugins-valve.html
@@ -81,7 +81,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8009792"></a><h3>Element Information</h3>
+<a name="idp7276800"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -104,7 +104,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11315344"></a><h3>Element Pads</h3>
+<a name="idp6954256"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins.devhelp2 b/docs/plugins/html/gstreamer-plugins.devhelp2
index 878a7e8..5b4e071 100644
--- a/docs/plugins/html/gstreamer-plugins.devhelp2
+++ b/docs/plugins/html/gstreamer-plugins.devhelp2
@@ -26,14 +26,14 @@
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7244064"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp8108768"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp81344"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7212656"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp7705936"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp135056"/>
     <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#idp7348848"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp7352032"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp7359440"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp5917840"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp5921024"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp5928432"/>
     <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"/>
@@ -57,9 +57,9 @@
     <keyword type="property" name="The &quot;sync&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--sync"/>
     <keyword type="property" name="The &quot;format&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--format"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-handoff"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp9286240"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp10003392"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp10010928"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp6480224"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp6482832"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp10479328"/>
     <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"/>
@@ -72,19 +72,19 @@
     <keyword type="property" name="The &quot;num-buffers&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-handoff"/>
     <keyword type="signal" name="The &quot;preroll-handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-preroll-handoff"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp9210352"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp9133200"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp9141056"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp6713600"/>
     <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#idp6457056"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp6460208"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp10135952"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp8708016"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp8711168"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp8718624"/>
     <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#idp9089696"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp9092304"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10170896"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp10794768"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp10797376"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10848016"/>
     <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"/>
@@ -92,19 +92,19 @@
     <keyword type="property" name="The &quot;touch&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--touch"/>
     <keyword type="property" name="The &quot;use-mmap&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--use-mmap"/>
     <keyword type="property" name="The &quot;sequential&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--sequential"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp9711680"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp9714240"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp9721648"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp6187584"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp6190144"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp6197552"/>
     <keyword type="struct" name="struct GstFileSink" link="gstreamer-plugins-filesink.html#GstFileSink-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--location"/>
     <keyword type="property" name="The &quot;buffer-mode&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-mode"/>
     <keyword type="property" name="The &quot;buffer-size&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-size"/>
     <keyword type="property" name="The &quot;append&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--append"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp6849904"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp6604704"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp9944992"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp9858432"/>
     <keyword type="struct" name="struct GstFunnel" link="gstreamer-plugins-funnel.html#GstFunnel-struct"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp10472176"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp10479632"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp11113760"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp11121216"/>
     <keyword type="struct" name="struct GstIdentity" link="gstreamer-plugins-identity.html#GstIdentity-struct"/>
     <keyword type="property" name="The &quot;check-perfect&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-perfect"/>
     <keyword type="property" name="The &quot;datarate&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--datarate"/>
@@ -120,18 +120,20 @@
     <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#idp9842896"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp10612512"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp11337552"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp11345088"/>
     <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;sync-mode&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode"/>
     <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#idp10414640"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp10854272"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp10861728"/>
+    <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp11098736"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp11562752"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp11570208"/>
     <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"/>
@@ -145,14 +147,14 @@
     <keyword type="property" name="The &quot;sync-by-running-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time"/>
     <keyword type="signal" name="The &quot;overrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun"/>
     <keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp10445936"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10698096"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp10403120"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10615680"/>
     <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#idp11058880"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp11066336"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp11696976"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp11704432"/>
     <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"/>
@@ -170,8 +172,8 @@
     <keyword type="signal" name="The &quot;running&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-running"/>
     <keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-underrun"/>
     <keyword type="signal" name="The &quot;pushing&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-pushing"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp11373072"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11380480"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp11966144"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11973552"/>
     <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"/>
@@ -187,9 +189,9 @@
     <keyword type="property" name="The &quot;use-rate-estimate&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate"/>
     <keyword type="property" name="The &quot;temp-remove&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-remove"/>
     <keyword type="property" name="The &quot;ring-buffer-max-size&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp11219408"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp11222128"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp11485952"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp6936944"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp6939664"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp12121888"/>
     <keyword type="struct" name="struct GstTee" link="gstreamer-plugins-tee.html#GstTee-struct"/>
     <keyword type="enum" name="enum GstTeePullMode" link="gstreamer-plugins-tee.html#GstTeePullMode"/>
     <keyword type="property" name="The &quot;has-chain&quot; property" link="gstreamer-plugins-tee.html#GstTee--has-chain"/>
@@ -199,16 +201,16 @@
     <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-tee.html#GstTee--silent"/>
     <keyword type="property" name="The &quot;pull-mode&quot; property" link="gstreamer-plugins-tee.html#GstTee--pull-mode"/>
     <keyword type="property" name="The &quot;alloc-pad&quot; property" link="gstreamer-plugins-tee.html#GstTee--alloc-pad"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp11281248"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp11288656"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp11522416"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp11529824"/>
     <keyword type="struct" name="struct GstTypeFindElement" link="gstreamer-plugins-typefind.html#GstTypeFindElement-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--caps"/>
     <keyword type="property" name="The &quot;maximum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--maximum"/>
     <keyword type="property" name="The &quot;minimum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum"/>
     <keyword type="property" name="The &quot;force-caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps"/>
     <keyword type="signal" name="The &quot;have-type&quot; signal" link="gstreamer-plugins-typefind.html#GstTypeFindElement-have-type"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp8009792"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp11315344"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp7276800"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp6954256"/>
     <keyword type="struct" name="struct GstValve" link="gstreamer-plugins-valve.html#GstValve-struct"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gstreamer-plugins-valve.html#GstValve--drop"/>
     <keyword type="constant" name="FAKE_SRC_DATA_ALLOCATE" link="gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-ALLOCATE:CAPS"/>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 68cd2ef..00593f5 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <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 (0.11.91)
+      for GStreamer Core Plugins 1.0 (0.11.92)
       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>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 4638518..01b5927 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -194,6 +194,8 @@
 <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--sync-mode" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode">
 <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">
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index 74a4211..5795411 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,7 +3,7 @@
   <description>standard GStreamer elements</description>
   <filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
   <basename>libgstcoreelements.so</basename>
-  <version>0.11.91</version>
+  <version>0.11.92</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 6f684d8..e22b674 100644
--- a/docs/pwg/Makefile.in
+++ b/docs/pwg/Makefile.in
@@ -73,6 +73,7 @@
 POST_UNINSTALL = :
 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
@@ -271,6 +272,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -423,7 +428,11 @@
 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@
diff --git a/docs/slides/Makefile.in b/docs/slides/Makefile.in
index 064b8fc..b244443 100644
--- a/docs/slides/Makefile.in
+++ b/docs/slides/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = docs/slides
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@
 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@
diff --git a/docs/xsl/Makefile.in b/docs/xsl/Makefile.in
index 0325dfb..e1a64f5 100644
--- a/docs/xsl/Makefile.in
+++ b/docs/xsl/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = docs/xsl
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@
 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@
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 008347b..2e6f45d 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -53,6 +53,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst
 DIST_COMMON = $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
@@ -412,6 +413,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -564,7 +569,11 @@
 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@
diff --git a/gst/gst.c b/gst/gst.c
index d78e9ce..96c20b5 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -139,7 +139,7 @@
 #endif
 
 #ifndef GST_DISABLE_GST_DEBUG
-extern const gchar *priv_gst_dump_dot_dir;
+const gchar *priv_gst_dump_dot_dir;
 #endif
 
 /* defaults */
@@ -746,7 +746,6 @@
 
   g_type_class_ref (gst_param_spec_fraction_get_type ());
   _priv_gst_tag_initialize ();
-  _priv_gst_toc_initialize ();
   gst_parse_context_get_type ();
 
   _priv_gst_plugin_initialize ();
diff --git a/gst/gst_private.h b/gst/gst_private.h
index f44c6f3..c15c8fa 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -113,7 +113,6 @@
 void  _priv_gst_tag_initialize (void);
 void  _priv_gst_value_initialize (void);
 void  _priv_gst_debug_init (void);
-void  _priv_gst_toc_initialize (void);
 
 /* TOC functions */
 /* These functions are used to parse TOC messages, events and queries */
@@ -296,6 +295,27 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
+struct _GstPluginFeature {
+  GstObject      object;
+
+  /*< private >*/
+  gboolean       loaded;
+  guint          rank;
+
+  const gchar   *plugin_name;
+  GstPlugin     *plugin;      /* weak ref */
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstPluginFeatureClass {
+  GstObjectClass        parent_class;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
 #include "gsttypefind.h"
 
 struct _GstTypeFindFactory {
@@ -319,6 +339,31 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
+struct _GstElementFactory {
+  GstPluginFeature      parent;
+
+  GType                 type;                   /* unique GType of element or 0 if not loaded */
+
+  gpointer              metadata;
+
+  GList *               staticpadtemplates;     /* GstStaticPadTemplate list */
+  guint                 numpadtemplates;
+
+  /* URI interface stuff */
+  GstURIType            uri_type;
+  gchar **              uri_protocols;
+
+  GList *               interfaces;             /* interface type names this element implements */
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstElementFactoryClass {
+  GstPluginFeatureClass parent_class;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
 
 G_END_DECLS
 #endif /* __GST_PRIVATE_H__ */
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 665259e..d5ce5f6 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -2152,7 +2152,7 @@
     GstState next)
 {
   GstStateChangeReturn ret;
-  GstState pending, child_current, child_pending;
+  GstState child_current, child_pending;
   gboolean locked;
   GList *found;
 
@@ -2182,17 +2182,76 @@
     goto no_preroll;
   }
 
-  GST_OBJECT_LOCK (bin);
-  pending = GST_STATE_PENDING (bin);
+  GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
+      "current %s pending %s, desired next %s",
+      gst_element_state_get_name (child_current),
+      gst_element_state_get_name (child_pending),
+      gst_element_state_get_name (next));
 
   /* Try not to change the state of elements that are already in the state we're
    * going to */
-  if (!(next == GST_STATE_PLAYING || child_pending != GST_STATE_VOID_PENDING ||
-          (child_pending == GST_STATE_VOID_PENDING &&
-              ((pending > child_current && next > child_current) ||
-                  (pending < child_current && next < child_current)))))
+  if (child_current == next && child_pending == GST_STATE_VOID_PENDING) {
+    /* child is already at the requested state, return previous return. Note that
+     * if the child has a pending state to next, we will still call the
+     * set_state function */
     goto unneeded;
+  } else if (next > current) {
+    /* upward state change */
+    if (child_pending == GST_STATE_VOID_PENDING) {
+      /* .. and the child is not busy doing anything */
+      if (child_current > next) {
+        /* .. and is already past the requested state, assume it got there
+         * without error */
+        ret = GST_STATE_CHANGE_SUCCESS;
+        goto unneeded;
+      }
+    } else if (child_pending > child_current) {
+      /* .. and the child is busy going upwards */
+      if (child_current >= next) {
+        /* .. and is already past the requested state, assume it got there
+         * without error */
+        ret = GST_STATE_CHANGE_SUCCESS;
+        goto unneeded;
+      }
+    } else {
+      /* .. and the child is busy going downwards */
+      if (child_current > next) {
+        /* .. and is already past the requested state, assume it got there
+         * without error */
+        ret = GST_STATE_CHANGE_SUCCESS;
+        goto unneeded;
+      }
+    }
+  } else if (next < current) {
+    /* downward state change */
+    if (child_pending == GST_STATE_VOID_PENDING) {
+      /* .. and the child is not busy doing anything */
+      if (child_current < next) {
+        /* .. and is already past the requested state, assume it got there
+         * without error */
+        ret = GST_STATE_CHANGE_SUCCESS;
+        goto unneeded;
+      }
+    } else if (child_pending < child_current) {
+      /* .. and the child is busy going downwards */
+      if (child_current <= next) {
+        /* .. and is already past the requested state, assume it got there
+         * without error */
+        ret = GST_STATE_CHANGE_SUCCESS;
+        goto unneeded;
+      }
+    } else {
+      /* .. and the child is busy going upwards */
+      if (child_current < next) {
+        /* .. and is already past the requested state, assume it got there
+         * without error */
+        ret = GST_STATE_CHANGE_SUCCESS;
+        goto unneeded;
+      }
+    }
+  }
 
+  GST_OBJECT_LOCK (bin);
   /* the element was busy with an upwards async state change, we must wait for
    * an ASYNC_DONE message before we attemp to change the state. */
   if ((found =
@@ -2234,6 +2293,15 @@
     GST_STATE_UNLOCK (element);
     return ret;
   }
+unneeded:
+  {
+    GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
+        "skipping transition from %s to  %s",
+        gst_element_state_get_name (child_current),
+        gst_element_state_get_name (next));
+    GST_STATE_UNLOCK (element);
+    return ret;
+  }
 was_busy:
   {
     GST_DEBUG_OBJECT (element, "element was busy, delaying state change");
@@ -2241,18 +2309,6 @@
     GST_STATE_UNLOCK (element);
     return GST_STATE_CHANGE_ASYNC;
   }
-unneeded:
-  {
-    GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
-        "skipping transition from %s to  %s, since bin pending"
-        " is %s : last change state return follows",
-        gst_element_state_get_name (child_current),
-        gst_element_state_get_name (next),
-        gst_element_state_get_name (pending));
-    GST_OBJECT_UNLOCK (bin);
-    GST_STATE_UNLOCK (element);
-    return ret;
-  }
 }
 
 /* gst_iterator_fold functions for pads_activate
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index 2f4a341..ec95ed5 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -177,7 +177,7 @@
   g_ptr_array_free (GST_CAPS_ARRAY (caps), TRUE);
 
 #ifdef DEBUG_REFCOUNT
-  GST_CAT_LOG (GST_CAT_CAPS, "freeing caps %p", caps);
+  GST_CAT_TRACE (GST_CAT_CAPS, "freeing caps %p", caps);
 #endif
   g_slice_free1 (GST_MINI_OBJECT_SIZE (caps), caps);
 }
diff --git a/gst/gstcompat.h b/gst/gstcompat.h
index a35c6ce..97728f4 100644
--- a/gst/gstcompat.h
+++ b/gst/gstcompat.h
@@ -56,6 +56,8 @@
 
 #define gst_adapter_prev_timestamp    gst_adapter_prev_pts
 
+#define gst_tag_list_free(taglist)    gst_tag_list_unref(taglist)
+
 #ifndef GST_DISABLE_DEPRECATED
 
 #endif /* not GST_DISABLE_DEPRECATED */
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index 8e31bde..e67a77c 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -54,7 +54,7 @@
 
 /*** PIPELINE GRAPHS **********************************************************/
 
-const gchar *priv_gst_dump_dot_dir;     /* NULL *//* set from gst.c */
+extern const gchar *priv_gst_dump_dot_dir;      /* NULL *//* set from gst.c */
 
 const gchar spaces[] = {
   "                                "    /* 32 */
diff --git a/gst/gstelement.c b/gst/gstelement.c
index b3366f4..2962830 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -325,7 +325,7 @@
   /* if the element implements a custom release function we call that, else we
    * simply remove the pad from the element */
   if (oclass->release_pad)
-    (oclass->release_pad) (element, pad);
+    oclass->release_pad (element, pad);
   else
     gst_element_remove_pad (element, pad);
 }
@@ -1523,9 +1523,10 @@
  * This function takes owership of the provided event so you should
  * gst_event_ref() it if you want to reuse the event after this call.
  *
- * Returns: %TRUE if the event was handled.
- *
  * MT safe.
+ *
+ * Returns: %TRUE if the event was handled. Events that trigger a preroll (such
+ * as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.
  */
 gboolean
 gst_element_send_event (GstElement * element, GstEvent * event)
@@ -1564,9 +1565,10 @@
  * the parameters. The seek event is sent to the element using
  * gst_element_send_event().
  *
- * Returns: %TRUE if the event was handled.
- *
  * MT safe.
+ *
+ * Returns: %TRUE if the event was handled. Flushing seeks will trigger a
+ * preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
  */
 gboolean
 gst_element_seek (GstElement * element, gdouble rate, GstFormat format,
@@ -2826,6 +2828,7 @@
   GstClock **clock_p;
   GstBus **bus_p;
   GstElementClass *oclass;
+  GList *walk;
 
   oclass = GST_ELEMENT_GET_CLASS (element);
 
@@ -2834,23 +2837,32 @@
   if (GST_STATE (element) != GST_STATE_NULL)
     goto not_null;
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
-      "removing %d pads", g_list_length (element->pads));
-  /* first we break all our links with the outside */
-  while (element->pads && element->pads->data) {
-    GstPad *pad = GST_PAD_CAST (element->pads->data);
+  /* start by releasing all request pads, this might also remove some dynamic
+   * pads */
+  walk = element->pads;
+  while (walk) {
+    GstPad *pad = GST_PAD_CAST (walk->data);
 
-    /* don't call _remove_pad with NULL */
+    walk = walk->next;
+
     if (oclass->release_pad && GST_PAD_PAD_TEMPLATE (pad) &&
         GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad))
-        == GST_PAD_REQUEST)
-      (oclass->release_pad) (element, GST_PAD_CAST (element->pads->data));
-    else
-      gst_element_remove_pad (element, GST_PAD_CAST (element->pads->data));
+        == GST_PAD_REQUEST) {
+      GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
+          "removing request pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+      oclass->release_pad (element, pad);
+    }
   }
-  if (G_UNLIKELY (element->pads != NULL)) {
-    g_critical ("could not remove pads from element %s",
-        GST_STR_NULL (GST_OBJECT_NAME (object)));
+  /* remove the remaining pads */
+  while (element->pads) {
+    GstPad *pad = GST_PAD_CAST (element->pads->data);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
+        "removing pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+    if (!gst_element_remove_pad (element, pad)) {
+      /* only happens when someone unparented our pad.. */
+      g_critical ("failed to remove pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+      break;
+    }
   }
 
   GST_OBJECT_LOCK (element);
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index b11abfc..a8ef9fe 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -510,6 +510,40 @@
 }
 
 /**
+ * gst_element_factory_get_metadata_keys:
+ * @factory,: a #GstElementFactory
+ *
+ * Get the available keys for the metadata on @factory.
+ *
+ * Returns: a %NULL-terminated array of key strings, or %NULL when
+ * there is no metadata. Free with g_strfreev() when no longer needd.
+ */
+gchar **
+gst_element_factory_get_metadata_keys (GstElementFactory * factory)
+{
+  GstStructure *metadata;
+  gchar **arr;
+  gint i, num;
+
+  g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), NULL);
+
+  metadata = (GstStructure *) factory->metadata;
+  if (metadata == NULL)
+    return NULL;
+
+  num = gst_structure_n_fields (metadata);
+  if (num == 0)
+    return NULL;
+
+  arr = g_new (gchar *, num + 1);
+  for (i = 0; i < num; ++i) {
+    arr[i] = g_strdup (gst_structure_nth_field_name (metadata, i));
+  }
+  arr[i] = NULL;
+  return arr;
+}
+
+/**
  * gst_element_factory_get_num_pad_templates:
  * @factory: a #GstElementFactory
  *
diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h
index b2dff92..601c9d6 100644
--- a/gst/gstelementfactory.h
+++ b/gst/gstelementfactory.h
@@ -24,16 +24,19 @@
 #ifndef __GST_ELEMENT_FACTORY_H__
 #define __GST_ELEMENT_FACTORY_H__
 
+/**
+ * GstElementFactory:
+ *
+ * The opaque #GstElementFactory data structure.
+ */
 typedef struct _GstElementFactory GstElementFactory;
 typedef struct _GstElementFactoryClass GstElementFactoryClass;
 
 #include <gst/gstconfig.h>
 #include <gst/gstelement.h>
-#include <gst/gstobject.h>
+#include <gst/gstpad.h>
 #include <gst/gstplugin.h>
 #include <gst/gstpluginfeature.h>
-#include <gst/gstpadtemplate.h>
-#include <gst/gstiterator.h>
 #include <gst/gsturi.h>
 
 G_BEGIN_DECLS
@@ -47,37 +50,6 @@
 #define GST_IS_ELEMENT_FACTORY_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT_FACTORY))
 #define GST_ELEMENT_FACTORY_CAST(obj)           ((GstElementFactory *)(obj))
 
-/**
- * GstElementFactory:
- *
- * The opaque #GstElementFactory data structure.
- */
-struct _GstElementFactory {
-  GstPluginFeature      parent;
-
-  GType                 type;                   /* unique GType of element or 0 if not loaded */
-
-  gpointer              metadata;
-
-  GList *               staticpadtemplates;     /* GstStaticPadTemplate list */
-  guint                 numpadtemplates;
-
-  /* URI interface stuff */
-  GstURIType            uri_type;
-  gchar **              uri_protocols;
-
-  GList *               interfaces;             /* interface type names this element implements */
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstElementFactoryClass {
-  GstPluginFeatureClass parent_class;
-
-  gpointer _gst_reserved[GST_PADDING];
-};
-
 GType                   gst_element_factory_get_type            (void);
 
 GstElementFactory *     gst_element_factory_find                (const gchar *name);
@@ -85,6 +57,7 @@
 GType                   gst_element_factory_get_element_type    (GstElementFactory *factory);
 
 const gchar *           gst_element_factory_get_metadata        (GstElementFactory *factory, const gchar *key);
+gchar **                gst_element_factory_get_metadata_keys   (GstElementFactory *factory);
 
 guint                   gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
 const GList *           gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
diff --git a/gst/gstevent.c b/gst/gstevent.c
index e496f40..3ba388a 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -992,19 +992,30 @@
 
 /**
  * gst_event_new_tag:
+ * @name: (transfer none): the name of the event
  * @taglist: (transfer full): metadata list. The event will take ownership
  *     of the taglist.
  *
  * Generates a metadata tag event from the given @taglist.
  *
+ * Since the TAG event has the %GST_EVENT_TYPE_STICKY_MULTI flag set, the
+ * @name will be used to keep track of multiple tag events.
+ *
  * Returns: (transfer full): a new #GstEvent
  */
 GstEvent *
-gst_event_new_tag (GstTagList * taglist)
+gst_event_new_tag (const gchar * name, GstTagList * taglist)
 {
+  GstStructure *s;
+  GValue val = G_VALUE_INIT;
+
   g_return_val_if_fail (taglist != NULL, NULL);
 
-  return gst_event_new_custom (GST_EVENT_TAG, (GstStructure *) taglist);
+  s = gst_structure_new_empty (name);
+  g_value_init (&val, GST_TYPE_TAG_LIST);
+  g_value_take_boxed (&val, taglist);
+  gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
+  return gst_event_new_custom (GST_EVENT_TAG, s);
 }
 
 /**
@@ -1020,11 +1031,16 @@
 void
 gst_event_parse_tag (GstEvent * event, GstTagList ** taglist)
 {
+  const GValue *val;
+
   g_return_if_fail (GST_IS_EVENT (event));
   g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
 
+  val = gst_structure_id_get_value (GST_EVENT_STRUCTURE (event),
+      GST_QUARK (TAGLIST));
+
   if (taglist)
-    *taglist = (GstTagList *) GST_EVENT_STRUCTURE (event);
+    *taglist = (GstTagList *) g_value_get_boxed (val);
 }
 
 /* buffersize event */
@@ -1252,13 +1268,13 @@
  * from the newly configured start position. 
  *
  * For negative rates, playback will start from the newly configured stop
- * position (if any). If the stop position if updated, it must be different from
- * -1 for negative rates.
+ * position (if any). If the stop position is updated, it must be different from
+ * -1 (#GST_CLOCK_TIME_NONE) for negative rates.
  *
  * It is not possible to seek relative to the current playback position, to do
  * this, PAUSE the pipeline, query the current playback position with
  * #GST_QUERY_POSITION and update the playback segment current position with a
- * #GST_SEEK_TYPE_SET to the desired position. 
+ * #GST_SEEK_TYPE_SET to the desired position.
  *
  * Returns: (transfer full): a new seek event.
  */
@@ -1539,19 +1555,22 @@
 
 /**
  * gst_event_new_sink_message:
+ * @name: a name for the event
  * @msg: (transfer none): the #GstMessage to be posted
  *
  * Create a new sink-message event. The purpose of the sink-message event is
  * to instruct a sink to post the message contained in the event synchronized
  * with the stream.
  *
+ * @name is used to store multiple sticky events on one pad.
+ *
  * Returns: (transfer full): a new #GstEvent
  *
  * Since: 0.10.26
  */
 /* FIXME 0.11: take ownership of msg for consistency? */
 GstEvent *
-gst_event_new_sink_message (GstMessage * msg)
+gst_event_new_sink_message (const gchar * name, GstMessage * msg)
 {
   GstEvent *event;
   GstStructure *structure;
@@ -1560,7 +1579,7 @@
 
   GST_CAT_INFO (GST_CAT_EVENT, "creating sink-message event");
 
-  structure = gst_structure_new_id (GST_QUARK (EVENT_SINK_MESSAGE),
+  structure = gst_structure_new_id (g_quark_from_string (name),
       GST_QUARK (MESSAGE), GST_TYPE_MESSAGE, msg, NULL);
   event = gst_event_new_custom (GST_EVENT_SINK_MESSAGE, structure);
 
@@ -1615,6 +1634,7 @@
 
 /**
  * gst_event_new_toc:
+ * @name: a name for the event
  * @toc: #GstToc structure.
  * @updated: whether @toc was updated or not.
  *
diff --git a/gst/gstevent.h b/gst/gstevent.h
index b8609e9..35ebba8 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -152,7 +152,7 @@
   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
   GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
   GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
 
   /* non-sticky downstream serialized */
   GST_EVENT_SEGMENT_DONE          = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
@@ -523,7 +523,7 @@
 void            gst_event_copy_segment          (GstEvent *event, GstSegment *segment);
 
 /* tag event */
-GstEvent*       gst_event_new_tag               (GstTagList *taglist) G_GNUC_MALLOC;
+GstEvent*       gst_event_new_tag               (const gchar *name, GstTagList *taglist) G_GNUC_MALLOC;
 void            gst_event_parse_tag             (GstEvent *event, GstTagList **taglist);
 
 /* TOC event */
@@ -538,7 +538,7 @@
                                                  gint64 *maxsize, gboolean *async);
 
 /* sink message */
-GstEvent*       gst_event_new_sink_message      (GstMessage *msg) G_GNUC_MALLOC;
+GstEvent*       gst_event_new_sink_message      (const gchar *name, GstMessage *msg) G_GNUC_MALLOC;
 void            gst_event_parse_sink_message    (GstEvent *event, GstMessage **msg);
 
 /* QOS events */
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 6b8b2c0..4eef4ac 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -480,13 +480,17 @@
 GstMessage *
 gst_message_new_tag (GstObject * src, GstTagList * tag_list)
 {
+  GstStructure *s;
   GstMessage *message;
+  GValue val = G_VALUE_INIT;
 
-  g_return_val_if_fail (GST_IS_STRUCTURE (tag_list), NULL);
+  g_return_val_if_fail (GST_IS_TAG_LIST (tag_list), NULL);
 
-  message =
-      gst_message_new_custom (GST_MESSAGE_TAG, src, (GstStructure *) tag_list);
-
+  s = gst_structure_new_id_empty (GST_QUARK (MESSAGE_TAG));
+  g_value_init (&val, GST_TYPE_TAG_LIST);
+  g_value_take_boxed (&val, tag_list);
+  gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
+  message = gst_message_new_custom (GST_MESSAGE_TAG, src, s);
   return message;
 }
 
@@ -1004,7 +1008,7 @@
  *       gst_message_parse_tag (msg, &amp;tags);
  *       g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg->src));
  *       handle_tags (tags);
- *       gst_tag_list_free (tags);
+ *       gst_tag_list_unref (tags);
  *       break;
  *     }
  *     ...
@@ -1017,16 +1021,12 @@
 void
 gst_message_parse_tag (GstMessage * message, GstTagList ** tag_list)
 {
-  GstStructure *ret;
-
   g_return_if_fail (GST_IS_MESSAGE (message));
   g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_TAG);
   g_return_if_fail (tag_list != NULL);
 
-  ret = gst_structure_copy (GST_MESSAGE_STRUCTURE (message));
-  gst_structure_remove_field (ret, "source-pad");
-
-  *tag_list = (GstTagList *) ret;
+  gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
+      GST_QUARK (TAGLIST), GST_TYPE_TAG_LIST, tag_list, NULL);
 }
 
 /**
@@ -2210,7 +2210,7 @@
  * @toc: (out): return location for the TOC.
  * @updated: (out): return location for the updated flag.
  *
- * Extract the TOC from the #GstMessage. The TOC returned in the
+ * Extract thef TOC from the #GstMessage. The TOC returned in the
  * output argument is a copy; the caller must free it with
  * gst_toc_free() when done.
  *
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 0464209..73981f3 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -2637,12 +2637,6 @@
   GST_LOG_OBJECT (pad, "default event handler");
 
   switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_EOS:
-    {
-      GST_DEBUG_OBJECT (pad, "pausing task because of eos");
-      gst_pad_pause_task (pad);
-      break;
-    }
     case GST_EVENT_CAPS:
       forward = GST_PAD_IS_PROXY_CAPS (pad);
       result = TRUE;
@@ -3151,11 +3145,21 @@
   GST_OBJECT_UNLOCK (pad);
 }
 
+typedef struct
+{
+  GstFlowReturn ret;
+
+  /* If TRUE and ret is not OK this means
+   * that pushing the EOS event failed
+   */
+  gboolean was_eos;
+} PushStickyData;
+
 /* should be called with pad LOCK */
 static gboolean
 push_sticky (GstPad * pad, PadEvent * ev, gpointer user_data)
 {
-  GstFlowReturn *data = user_data;
+  PushStickyData *data = user_data;
   GstEvent *event = ev->event;
 
   if (ev->received) {
@@ -3164,10 +3168,10 @@
     return TRUE;
   }
 
-  *data = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
+  data->ret = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
       GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
 
-  switch (*data) {
+  switch (data->ret) {
     case GST_FLOW_OK:
       ev->received = TRUE;
       GST_DEBUG_OBJECT (pad, "event %s marked received",
@@ -3175,16 +3179,21 @@
       break;
     case GST_FLOW_NOT_LINKED:
       /* not linked is not a problem, we are sticky so the event will be
-       * sent later */
+       * sent later but only for non-EOS events */
       GST_DEBUG_OBJECT (pad, "pad was not linked");
-      *data = GST_FLOW_OK;
+      if (GST_EVENT_TYPE (event) != GST_EVENT_EOS)
+        data->ret = GST_FLOW_OK;
       /* fallthrough */
     default:
       GST_DEBUG_OBJECT (pad, "mark pending events");
       GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
       break;
   }
-  return *data == GST_FLOW_OK;
+
+  if (data->ret != GST_FLOW_OK && GST_EVENT_TYPE (event) == GST_EVENT_EOS)
+    data->was_eos = TRUE;
+
+  return data->ret == GST_FLOW_OK;
 }
 
 /* check sticky events and push them when needed. should be called
@@ -3192,15 +3201,31 @@
 static inline GstFlowReturn
 check_sticky (GstPad * pad)
 {
-  GstFlowReturn ret = GST_FLOW_OK;
+  PushStickyData data = { GST_FLOW_OK, FALSE };
 
   if (G_UNLIKELY (GST_PAD_HAS_PENDING_EVENTS (pad))) {
     GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
 
     GST_DEBUG_OBJECT (pad, "pushing all sticky events");
-    events_foreach (pad, push_sticky, &ret);
+    events_foreach (pad, push_sticky, &data);
+
+    /* If there's an EOS event we must push it downstream
+     * even if sending a previous sticky event failed.
+     * Otherwise the pipeline might wait forever for EOS.
+     *
+     * Only do this if pushing another event than the EOS
+     * event failed.
+     */
+    if (data.ret != GST_FLOW_OK && !data.was_eos) {
+      PadEvent *ev = find_event_by_type (pad, GST_EVENT_EOS, 0);
+
+      if (ev && !ev->received) {
+        data.ret = gst_pad_push_event_unchecked (pad, gst_event_ref (ev->event),
+            GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
+      }
+    }
   }
-  return ret;
+  return data.ret;
 }
 
 
@@ -3473,6 +3498,9 @@
   if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
     goto flushing;
 
+  if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+    goto eos;
+
   if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
     goto wrong_mode;
 
@@ -3534,6 +3562,14 @@
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
     return GST_FLOW_FLUSHING;
   }
+eos:
+  {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "chaining, but pad was EOS");
+    GST_OBJECT_UNLOCK (pad);
+    GST_PAD_STREAM_UNLOCK (pad);
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    return GST_FLOW_EOS;
+  }
 wrong_mode:
   {
     g_critical ("chain on pad %s:%s but it was not in push mode",
@@ -3682,6 +3718,9 @@
   if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
     goto flushing;
 
+  if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+    goto eos;
+
   if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
     goto wrong_mode;
 
@@ -3727,6 +3766,13 @@
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
     return GST_FLOW_FLUSHING;
   }
+eos:
+  {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "pushing, but pad was EOS");
+    GST_OBJECT_UNLOCK (pad);
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    return GST_FLOW_EOS;
+  }
 wrong_mode:
   {
     g_critical ("pushing on pad %s:%s but it was not activated in push mode",
@@ -4289,6 +4335,7 @@
       /* Remove sticky EOS events */
       GST_LOG_OBJECT (pad, "Removing pending EOS events");
       remove_event_by_type (pad, GST_EVENT_EOS);
+      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
 
       type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
       break;
@@ -4297,6 +4344,11 @@
       if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
         goto flushed;
 
+      /* No need to check for EOS here as either the caller (gst_pad_push_event())
+       * checked already or this is called as part of pushing sticky events,
+       * in which case we still want to forward the EOS event downstream.
+       */
+
       switch (GST_EVENT_TYPE (event)) {
         case GST_EVENT_SEGMENT:
           /* pass the adjusted segment event on. We need to do this even if
@@ -4378,6 +4430,11 @@
     GST_DEBUG_OBJECT (pad, "Dropping event because pad is not linked");
     GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
     gst_event_unref (event);
+
+    /* unlinked pads should not influence latency configuration */
+    if (event_type == GST_EVENT_LATENCY)
+      return GST_FLOW_OK;
+
     return GST_FLOW_NOT_LINKED;
   }
 idle_probe_stopped:
@@ -4406,7 +4463,7 @@
 gboolean
 gst_pad_push_event (GstPad * pad, GstEvent * event)
 {
-  gboolean res;
+  gboolean res = FALSE;
   GstPadProbeType type;
   gboolean sticky, serialized;
 
@@ -4434,12 +4491,17 @@
     if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
       goto flushed;
 
+    if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+      goto eos;
+
     /* srcpad sticky events are store immediately, the received flag is set
      * to FALSE and will be set to TRUE when we can successfully push the
      * event to the peer pad */
     if (gst_pad_store_sticky_event (pad, event, TRUE)) {
       GST_DEBUG_OBJECT (pad, "event %s updated", GST_EVENT_TYPE_NAME (event));
     }
+    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
@@ -4450,8 +4512,14 @@
     /* other events are pushed right away */
     res = (gst_pad_push_event_unchecked (pad, event, type) == GST_FLOW_OK);
   } else {
+    /* 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_TYPE (event) != GST_EVENT_EOS)
+      res = TRUE;
     gst_event_unref (event);
-    res = TRUE;
   }
   GST_OBJECT_UNLOCK (pad);
 
@@ -4478,13 +4546,20 @@
     gst_event_unref (event);
     return FALSE;
   }
+eos:
+  {
+    GST_DEBUG_OBJECT (pad, "We're EOS");
+    GST_OBJECT_UNLOCK (pad);
+    gst_event_unref (event);
+    return FALSE;
+  }
 }
 
 /* Check if we can call the event function with the given event */
 static GstFlowReturn
 pre_eventfunc_check (GstPad * pad, GstEvent * event)
 {
-  GstCaps *caps, *templ;
+  GstCaps *caps;
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_CAPS:
@@ -4492,12 +4567,8 @@
       /* backwards compatibility mode for caps */
       gst_event_parse_caps (event, &caps);
 
-      /* See if pad accepts the caps */
-      templ = gst_pad_get_pad_template_caps (pad);
-      if (!gst_caps_is_subset (caps, templ))
+      if (!gst_pad_query_accept_caps (pad, caps))
         goto not_accepted;
-
-      gst_caps_unref (templ);
       break;
     }
     default:
@@ -4508,11 +4579,8 @@
   /* ERRORS */
 not_accepted:
   {
-    gst_caps_unref (templ);
     GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
         "caps %" GST_PTR_FORMAT " not accepted", caps);
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-        "no intersection with template %" GST_PTR_FORMAT, templ);
     return GST_FLOW_NOT_NEGOTIATED;
   }
 }
@@ -4554,6 +4622,7 @@
       /* Remove pending EOS events */
       GST_LOG_OBJECT (pad, "Removing pending EOS events");
       remove_event_by_type (pad, GST_EVENT_EOS);
+      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
 
       GST_OBJECT_UNLOCK (pad);
       /* grab stream lock */
@@ -4574,6 +4643,9 @@
         goto flushing;
 
       if (serialized) {
+        if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+          goto eos;
+
         /* lock order: STREAM_LOCK, LOCK, recheck flushing. */
         GST_OBJECT_UNLOCK (pad);
         GST_PAD_STREAM_LOCK (pad);
@@ -4581,6 +4653,9 @@
         GST_OBJECT_LOCK (pad);
         if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
           goto flushing;
+
+        if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+          goto eos;
       }
 
       switch (GST_EVENT_TYPE (event)) {
@@ -4635,6 +4710,8 @@
       /* after the event function accepted the event, we can store the sticky
        * event on the pad */
       gst_pad_store_sticky_event (pad, event, FALSE);
+      if (event_type == GST_EVENT_EOS)
+        GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_EOS);
     }
     gst_event_unref (event);
   }
@@ -4655,6 +4732,16 @@
     gst_event_unref (event);
     return GST_FLOW_FLUSHING;
   }
+eos:
+  {
+    GST_OBJECT_UNLOCK (pad);
+    if (need_unlock)
+      GST_PAD_STREAM_UNLOCK (pad);
+    GST_CAT_INFO_OBJECT (GST_CAT_EVENT, pad,
+        "Received event on EOS pad. Discarding");
+    gst_event_unref (event);
+    return GST_FLOW_EOS;
+  }
 probe_stopped:
   {
     GST_OBJECT_UNLOCK (pad);
diff --git a/gst/gstpad.h b/gst/gstpad.h
index df66794..4e93f07 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -590,7 +590,8 @@
 /**
  * GstPadFlags:
  * @GST_PAD_FLAG_BLOCKED: is dataflow on a pad blocked
- * @GST_PAD_FLAG_FLUSHING: is pad refusing buffers
+ * @GST_PAD_FLAG_FLUSHING: is pad flushing
+ * @GST_PAD_FLAG_EOS: is pad in EOS state
  * @GST_PAD_FLAG_BLOCKING: is pad currently blocking on a buffer or event
  * @GST_PAD_FLAG_NEED_PARENT: ensure that there is a parent object before calling
  *                       into the pad callbacks.
@@ -614,13 +615,14 @@
 typedef enum {
   GST_PAD_FLAG_BLOCKED          = (GST_OBJECT_FLAG_LAST << 0),
   GST_PAD_FLAG_FLUSHING         = (GST_OBJECT_FLAG_LAST << 1),
-  GST_PAD_FLAG_BLOCKING         = (GST_OBJECT_FLAG_LAST << 2),
-  GST_PAD_FLAG_NEED_PARENT      = (GST_OBJECT_FLAG_LAST << 3),
-  GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST << 4),
-  GST_PAD_FLAG_PENDING_EVENTS   = (GST_OBJECT_FLAG_LAST << 5),
-  GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST << 6),
-  GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST << 7),
-  GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 8),
+  GST_PAD_FLAG_EOS              = (GST_OBJECT_FLAG_LAST << 2),
+  GST_PAD_FLAG_BLOCKING         = (GST_OBJECT_FLAG_LAST << 3),
+  GST_PAD_FLAG_NEED_PARENT      = (GST_OBJECT_FLAG_LAST << 4),
+  GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST << 5),
+  GST_PAD_FLAG_PENDING_EVENTS   = (GST_OBJECT_FLAG_LAST << 6),
+  GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST << 7),
+  GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST << 8),
+  GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 9),
   /* padding */
   GST_PAD_FLAG_LAST        = (GST_OBJECT_FLAG_LAST << 16)
 } GstPadFlags;
@@ -755,6 +757,8 @@
 #define GST_PAD_SET_FLUSHING(pad)	(GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_FLUSHING))
 #define GST_PAD_UNSET_FLUSHING(pad)	(GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_FLUSHING))
 
+#define GST_PAD_IS_EOS(pad)	        (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_EOS))
+
 #define GST_PAD_NEEDS_RECONFIGURE(pad)  (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_NEED_RECONFIGURE))
 #define GST_PAD_HAS_PENDING_EVENTS(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PENDING_EVENTS))
 #define GST_PAD_IS_FIXED_CAPS(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_FIXED_CAPS))
diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c
index e61fee2..3e1228e 100644
--- a/gst/gstpluginfeature.c
+++ b/gst/gstpluginfeature.c
@@ -180,6 +180,26 @@
 }
 
 /**
+ * gst_plugin_feature_get_plugin:
+ * @feature: a feature
+ *
+ * Get the plugin that provides this feature.
+ *
+ * Returns: (transfer full): the plugin that provides this feature, or %NULL.
+ *     Unref with gst_object_unref() when no longer needed.
+ */
+GstPlugin *
+gst_plugin_feature_get_plugin (GstPluginFeature * feature)
+{
+  g_return_val_if_fail (GST_IS_PLUGIN_FEATURE (feature), NULL);
+
+  if (feature->plugin == NULL)
+    return NULL;
+
+  return (GstPlugin *) gst_object_ref (feature->plugin);
+}
+
+/**
  * gst_plugin_feature_list_free:
  * @list: (transfer full) (element-type Gst.PluginFeature): list
  *     of #GstPluginFeature
diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h
index b99d9ee..a372281 100644
--- a/gst/gstpluginfeature.h
+++ b/gst/gstpluginfeature.h
@@ -38,6 +38,11 @@
 #define GST_PLUGIN_FEATURE_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PLUGIN_FEATURE, GstPluginFeatureClass))
 #define GST_PLUGIN_FEATURE_CAST(obj)            ((GstPluginFeature*)(obj))
 
+/**
+ * GstPluginFeature:
+ *
+ * Opaque #GstPluginFeature structure.
+ */
 typedef struct _GstPluginFeature GstPluginFeature;
 typedef struct _GstPluginFeatureClass GstPluginFeatureClass;
 
@@ -85,32 +90,6 @@
 #define                 gst_plugin_feature_set_name(feature,name) gst_object_set_name(GST_OBJECT_CAST(feature),name)
 
 /**
- * GstPluginFeature:
- *
- * Opaque #GstPluginFeature structure.
- */
-struct _GstPluginFeature {
-  GstObject      object;
-
-  /*< private >*/
-  gboolean       loaded;
-  guint          rank;
-
-  const gchar   *plugin_name;
-  GstPlugin     *plugin;      /* weak ref */
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstPluginFeatureClass {
-  GstObjectClass        parent_class;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-/**
  * GstPluginFeatureFilter:
  * @feature: the pluginfeature to check
  * @user_data: the user_data that has been passed on e.g.
@@ -133,6 +112,8 @@
 void            gst_plugin_feature_set_rank             (GstPluginFeature *feature, guint rank);
 guint           gst_plugin_feature_get_rank             (GstPluginFeature *feature);
 
+GstPlugin     * gst_plugin_feature_get_plugin           (GstPluginFeature *feature);
+
 void            gst_plugin_feature_list_free            (GList *list);
 GList          *gst_plugin_feature_list_copy            (GList *list) G_GNUC_MALLOC;
 void            gst_plugin_feature_list_debug           (GList *list);
diff --git a/gst/gstquark.c b/gst/gstquark.c
index d7b6b6d..2d55fa3 100644
--- a/gst/gstquark.c
+++ b/gst/gstquark.c
@@ -58,9 +58,11 @@
   "allocator", "GstEventFlushStop", "options", "GstQueryAcceptCaps",
   "result", "GstQueryCaps", "filter", "modes", "GstEventStreamConfig",
   "setup-data", "stream-headers", "GstEventGap", "GstQueryDrain", "params",
-  "toc-select", "uid", "toc", GST_ELEMENT_METADATA_LONGNAME,
+  "GstEventTocSelect", "uid", "GstQueryToc", GST_ELEMENT_METADATA_LONGNAME,
   GST_ELEMENT_METADATA_KLASS, GST_ELEMENT_METADATA_DESCRIPTION,
-  GST_ELEMENT_METADATA_AUTHOR
+  GST_ELEMENT_METADATA_AUTHOR, "toc", "toc-entry", "updated", "extend-uid",
+  "uid", "tags", "sub-entries", "info", "info-structure",
+  "time-structure", "GstMessageTag", "GstEventTag"
 };
 
 GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquark.h b/gst/gstquark.h
index 8f8968f..969ce79 100644
--- a/gst/gstquark.h
+++ b/gst/gstquark.h
@@ -171,7 +171,19 @@
   GST_QUARK_ELEMENT_METADATA_KLASS = 142,
   GST_QUARK_ELEMENT_METADATA_DESCRIPTION = 143,
   GST_QUARK_ELEMENT_METADATA_AUTHOR = 144,
-  GST_QUARK_MAX = 145
+  GST_QUARK_TOC = 145,
+  GST_QUARK_TOC_ENTRY = 146,
+  GST_QUARK_UPDATED = 147,
+  GST_QUARK_EXTEND_UID = 148,
+  GST_QUARK_TOC_UID = 149,
+  GST_QUARK_TAGS = 150,
+  GST_QUARK_SUB_ENTRIES = 151,
+  GST_QUARK_INFO = 152,
+  GST_QUARK_INFO_STRUCTURE = 153,
+  GST_QUARK_TIME_STRUCTURE = 154,
+  GST_QUARK_MESSAGE_TAG = 155,
+  GST_QUARK_EVENT_TAG = 156,
+  GST_QUARK_MAX = 157
 } GstQuarkId;
 
 extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquery.c b/gst/gstquery.c
index 4aaa17e..5fadc9d 100644
--- a/gst/gstquery.c
+++ b/gst/gstquery.c
@@ -2197,7 +2197,7 @@
  *
  * Constructs a new query object for querying the caps.
  *
- * The CAPS query should return the* allowable caps for a pad in the context
+ * The CAPS query should return the allowable caps for a pad in the context
  * of the element's state, its link to other elements, and the devices or files
  * it has opened. These caps must be a subset of the pad template caps. In the
  * NULL state with no links, the CAPS query should ideally return the same caps
@@ -2210,6 +2210,10 @@
  * the CAPS query should return the most specific caps it reasonably can, since this
  * helps with autoplugging.
  *
+ * The @filter is used to restrict the result caps, only the caps matching
+ * @filter should be returned from the CAPS query. Specifying a filter might
+ * greatly reduce the amount of processing an element needs to do.
+ *
  * Free-function: gst_query_unref
  *
  * Returns: (transfer full): a new #GstQuery
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index 0575709..c77cffe 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -1664,7 +1664,7 @@
   registry_file = g_strdup (g_getenv ("GST_REGISTRY"));
   if (registry_file == NULL) {
     registry_file = g_build_filename (g_get_user_cache_dir (),
-        "gstreamer-" GST_API_VERSION, "registry." HOST_CPU ".bin", NULL);
+        "gstreamer-" GST_API_VERSION, "registry." TARGET_CPU ".bin", NULL);
   }
 
   if (!_gst_disable_registry_cache) {
diff --git a/gst/gststructure.c b/gst/gststructure.c
index 8065b31..fdc65e1 100644
--- a/gst/gststructure.c
+++ b/gst/gststructure.c
@@ -1828,7 +1828,7 @@
  *
  * Free-function: g_free
  *
- * Returns: (transfer full)L a pointer to string allocated by g_malloc().
+ * Returns: (transfer full): a pointer to string allocated by g_malloc().
  *     g_free() after usage.
  */
 gchar *
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index c1a2ab0..5658fe7 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -47,14 +47,22 @@
 #include <gobject/gvaluecollector.h>
 #include <string.h>
 
+/* FIXME: add category for tags */
+#define GST_CAT_TAGS GST_CAT_DEFAULT
+
 #define GST_TAG_IS_VALID(tag)           (gst_tag_get_info (tag) != NULL)
 
 /* FIXME 0.11: make taglists refcounted maybe? */
 /* a tag list is basically a structure, but we don't make this fact public */
-struct _GstTagList
+typedef struct _GstTagListImpl
 {
-  GstStructure structure;
-};
+  GstTagList taglist;
+
+  GstStructure *structure;
+} GstTagListImpl;
+
+#define GST_TAG_LIST_STRUCTURE(taglist) ((GstTagListImpl*)(taglist))->structure
+
 
 /* FIXME 0.11: use GParamSpecs or something similar for tag registrations,
  * possibly even gst_tag_register(). Especially value ranges might be
@@ -64,8 +72,8 @@
 {
   GType type;                   /* type the data is in */
 
-  gchar *nick;                  /* translated name */
-  gchar *blurb;                 /* translated description of type */
+  const gchar *nick;            /* translated short description */
+  const gchar *blurb;           /* translated long description  */
 
   GstTagMergeFunc merge_func;   /* functions to merge the values */
   GstTagFlag flag;              /* type of tag */
@@ -82,298 +90,307 @@
 /* tags hash table: maps tag name string => GstTagInfo */
 static GHashTable *__tags;
 
-G_DEFINE_BOXED_TYPE (GstTagList, gst_tag_list,
-    (GBoxedCopyFunc) gst_tag_list_copy, (GBoxedFreeFunc) gst_tag_list_free);
+GST_DEFINE_MINI_OBJECT_TYPE (GstTagList, gst_tag_list);
+
+static void __gst_tag_list_free (GstTagList * list);
+static GstTagList *__gst_tag_list_copy (const GstTagList * list);
 
 /* FIXME: had code:
  *    g_value_register_transform_func (_gst_tag_list_type, G_TYPE_STRING,
  *      _gst_structure_transform_to_string);
  */
-
 void
 _priv_gst_tag_initialize (void)
 {
   g_mutex_init (&__tag_mutex);
 
   __tags = g_hash_table_new (g_str_hash, g_str_equal);
-  gst_tag_register (GST_TAG_TITLE, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_TITLE, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("title"), _("commonly used title"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_TITLE_SORTNAME, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_TITLE_SORTNAME, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("title sortname"), _("commonly used title for sorting purposes"), NULL);
-  gst_tag_register (GST_TAG_ARTIST, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ARTIST, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("artist"),
       _("person(s) responsible for the recording"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_ARTIST_SORTNAME, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ARTIST_SORTNAME, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("artist sortname"),
       _("person(s) responsible for the recording for sorting purposes"), NULL);
-  gst_tag_register (GST_TAG_ALBUM, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("album"),
       _("album containing this data"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_ALBUM_SORTNAME, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_SORTNAME, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("album sortname"),
       _("album containing this data for sorting purposes"), NULL);
-  gst_tag_register (GST_TAG_ALBUM_ARTIST, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_ARTIST, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("album artist"),
       _("The artist of the entire album, as it should be displayed"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_ALBUM_ARTIST_SORTNAME, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_ARTIST_SORTNAME, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("album artist sortname"),
       _("The artist of the entire album, as it should be sorted"), NULL);
-  gst_tag_register (GST_TAG_DATE, GST_TAG_FLAG_META, G_TYPE_DATE,
+  gst_tag_register_static (GST_TAG_DATE, GST_TAG_FLAG_META, G_TYPE_DATE,
       _("date"), _("date the data was created (as a GDate structure)"), NULL);
-  gst_tag_register (GST_TAG_DATE_TIME, GST_TAG_FLAG_META, GST_TYPE_DATE_TIME,
-      _("datetime"),
+  gst_tag_register_static (GST_TAG_DATE_TIME, GST_TAG_FLAG_META,
+      GST_TYPE_DATE_TIME, _("datetime"),
       _("date and time the data was created (as a GstDateTime structure)"),
       NULL);
-  gst_tag_register (GST_TAG_GENRE, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GENRE, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("genre"),
       _("genre this data belongs to"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_COMMENT, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_COMMENT, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("comment"),
       _("free text commenting the data"), gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_EXTENDED_COMMENT, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_EXTENDED_COMMENT, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("extended comment"),
       _("free text commenting the data in key=value or key[en]=comment form"),
       gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_TRACK_NUMBER, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_TRACK_NUMBER, GST_TAG_FLAG_META,
       G_TYPE_UINT,
       _("track number"),
       _("track number inside a collection"), gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_TRACK_COUNT, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_TRACK_COUNT, GST_TAG_FLAG_META,
       G_TYPE_UINT,
       _("track count"),
       _("count of tracks inside collection this track belongs to"),
       gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_ALBUM_VOLUME_NUMBER, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_VOLUME_NUMBER, GST_TAG_FLAG_META,
       G_TYPE_UINT,
       _("disc number"),
       _("disc number inside a collection"), gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_ALBUM_VOLUME_COUNT, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_VOLUME_COUNT, GST_TAG_FLAG_META,
       G_TYPE_UINT,
       _("disc count"),
       _("count of discs inside collection this disc belongs to"),
       gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_LOCATION, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_LOCATION, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("location"), _("Origin of media as a URI (location, where the "
           "original of the file or stream is hosted)"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_HOMEPAGE, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_HOMEPAGE, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("homepage"),
       _("Homepage for this media (i.e. artist or movie homepage)"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_DESCRIPTION, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("description"), _("short text describing the content of the data"),
+  gst_tag_register_static (GST_TAG_DESCRIPTION, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("description"),
+      _("short text describing the content of the data"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_VERSION, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_VERSION, GST_TAG_FLAG_META, G_TYPE_STRING,
       _("version"), _("version of this data"), NULL);
-  gst_tag_register (GST_TAG_ISRC, GST_TAG_FLAG_META, G_TYPE_STRING, _("ISRC"),
+  gst_tag_register_static (GST_TAG_ISRC, GST_TAG_FLAG_META, G_TYPE_STRING,
+      _("ISRC"),
       _
       ("International Standard Recording Code - see http://www.ifpi.org/isrc/"),
       NULL);
   /* FIXME: organization (fix what? tpm) */
-  gst_tag_register (GST_TAG_ORGANIZATION, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("organization"), _("organization"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_COPYRIGHT, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ORGANIZATION, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("organization"), _("organization"),
+      gst_tag_merge_strings_with_comma);
+  gst_tag_register_static (GST_TAG_COPYRIGHT, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("copyright"), _("copyright notice of the data"), NULL);
-  gst_tag_register (GST_TAG_COPYRIGHT_URI, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_COPYRIGHT_URI, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("copyright uri"),
       _("URI to the copyright notice of the data"), NULL);
-  gst_tag_register (GST_TAG_ENCODED_BY, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_ENCODED_BY, GST_TAG_FLAG_META, G_TYPE_STRING,
       _("encoded by"), _("name of the encoding person or organization"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_CONTACT, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_CONTACT, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("contact"), _("contact information"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_LICENSE, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_LICENSE, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("license"), _("license of data"), NULL);
-  gst_tag_register (GST_TAG_LICENSE_URI, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_LICENSE_URI, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("license uri"),
       _("URI to the license of the data"), NULL);
-  gst_tag_register (GST_TAG_PERFORMER, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_PERFORMER, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("performer"),
       _("person(s) performing"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_COMPOSER, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_COMPOSER, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("composer"),
       _("person(s) who composed the recording"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_DURATION, GST_TAG_FLAG_DECODED,
+  gst_tag_register_static (GST_TAG_DURATION, GST_TAG_FLAG_DECODED,
       G_TYPE_UINT64,
       _("duration"), _("length in GStreamer time units (nanoseconds)"), NULL);
-  gst_tag_register (GST_TAG_CODEC, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_CODEC, GST_TAG_FLAG_ENCODED,
       G_TYPE_STRING,
       _("codec"),
       _("codec the data is stored in"), gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_VIDEO_CODEC, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_VIDEO_CODEC, GST_TAG_FLAG_ENCODED,
       G_TYPE_STRING,
       _("video codec"), _("codec the video data is stored in"), NULL);
-  gst_tag_register (GST_TAG_AUDIO_CODEC, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_AUDIO_CODEC, GST_TAG_FLAG_ENCODED,
       G_TYPE_STRING,
       _("audio codec"), _("codec the audio data is stored in"), NULL);
-  gst_tag_register (GST_TAG_SUBTITLE_CODEC, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_SUBTITLE_CODEC, GST_TAG_FLAG_ENCODED,
       G_TYPE_STRING,
       _("subtitle codec"), _("codec the subtitle data is stored in"), NULL);
-  gst_tag_register (GST_TAG_CONTAINER_FORMAT, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_CONTAINER_FORMAT, GST_TAG_FLAG_ENCODED,
       G_TYPE_STRING, _("container format"),
       _("container format the data is stored in"), NULL);
-  gst_tag_register (GST_TAG_BITRATE, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_BITRATE, GST_TAG_FLAG_ENCODED,
       G_TYPE_UINT, _("bitrate"), _("exact or average bitrate in bits/s"), NULL);
-  gst_tag_register (GST_TAG_NOMINAL_BITRATE, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_NOMINAL_BITRATE, GST_TAG_FLAG_ENCODED,
       G_TYPE_UINT, _("nominal bitrate"), _("nominal bitrate in bits/s"), NULL);
-  gst_tag_register (GST_TAG_MINIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_MINIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
       G_TYPE_UINT, _("minimum bitrate"), _("minimum bitrate in bits/s"), NULL);
-  gst_tag_register (GST_TAG_MAXIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_MAXIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
       G_TYPE_UINT, _("maximum bitrate"), _("maximum bitrate in bits/s"), NULL);
-  gst_tag_register (GST_TAG_ENCODER, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_ENCODER, GST_TAG_FLAG_ENCODED,
       G_TYPE_STRING,
       _("encoder"), _("encoder used to encode this stream"), NULL);
-  gst_tag_register (GST_TAG_ENCODER_VERSION, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_ENCODER_VERSION, GST_TAG_FLAG_ENCODED,
       G_TYPE_UINT,
       _("encoder version"),
       _("version of the encoder used to encode this stream"), NULL);
-  gst_tag_register (GST_TAG_SERIAL, GST_TAG_FLAG_ENCODED,
+  gst_tag_register_static (GST_TAG_SERIAL, GST_TAG_FLAG_ENCODED,
       G_TYPE_UINT, _("serial"), _("serial number of track"), NULL);
-  gst_tag_register (GST_TAG_TRACK_GAIN, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_TRACK_GAIN, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("replaygain track gain"), _("track gain in db"), NULL);
-  gst_tag_register (GST_TAG_TRACK_PEAK, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_TRACK_PEAK, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("replaygain track peak"), _("peak of the track"), NULL);
-  gst_tag_register (GST_TAG_ALBUM_GAIN, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_GAIN, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("replaygain album gain"), _("album gain in db"), NULL);
-  gst_tag_register (GST_TAG_ALBUM_PEAK, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_ALBUM_PEAK, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("replaygain album peak"), _("peak of the album"), NULL);
-  gst_tag_register (GST_TAG_REFERENCE_LEVEL, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_REFERENCE_LEVEL, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("replaygain reference level"),
       _("reference level of track and album gain values"), NULL);
-  gst_tag_register (GST_TAG_LANGUAGE_CODE, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("language code"),
+  gst_tag_register_static (GST_TAG_LANGUAGE_CODE, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("language code"),
       _("language code for this stream, conforming to ISO-639-1 or ISO-639-2"),
       NULL);
-  gst_tag_register (GST_TAG_LANGUAGE_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("language name"),
+  gst_tag_register_static (GST_TAG_LANGUAGE_NAME, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("language name"),
       _("freeform name of the language this stream is in"), NULL);
-  gst_tag_register (GST_TAG_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
+  gst_tag_register_static (GST_TAG_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
       _("image"), _("image related to this stream"), gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
+  gst_tag_register_static (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META,
+      GST_TYPE_SAMPLE,
       /* TRANSLATORS: 'preview image' = image that shows a preview of the full image */
       _("preview image"), _("preview image related to this stream"), NULL);
-  gst_tag_register (GST_TAG_ATTACHMENT, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
-      _("attachment"), _("file attached to this stream"),
+  gst_tag_register_static (GST_TAG_ATTACHMENT, GST_TAG_FLAG_META,
+      GST_TYPE_SAMPLE, _("attachment"), _("file attached to this stream"),
       gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META, G_TYPE_DOUBLE,
-      _("beats per minute"), _("number of beats per minute in audio"), NULL);
-  gst_tag_register (GST_TAG_KEYWORDS, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META,
+      G_TYPE_DOUBLE, _("beats per minute"),
+      _("number of beats per minute in audio"), NULL);
+  gst_tag_register_static (GST_TAG_KEYWORDS, GST_TAG_FLAG_META, G_TYPE_STRING,
       _("keywords"), _("comma separated keywords describing the content"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_GEO_LOCATION_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("geo location name"), _("human readable descriptive location of where "
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_NAME, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("geo location name"),
+      _("human readable descriptive location of where "
           "the media has been recorded or produced"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_LATITUDE, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_LATITUDE, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("geo location latitude"),
       _("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)"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_LONGITUDE, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_LONGITUDE, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("geo location longitude"),
       _("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)"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_ELEVATION, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_ELEVATION, GST_TAG_FLAG_META,
       G_TYPE_DOUBLE, _("geo location elevation"),
       _("geo elevation of where the media has been recorded or produced in "
           "meters according to WGS84 (zero is average sea level)"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_COUNTRY, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_COUNTRY, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("geo location country"),
       _("country (english name) where the media has been recorded "
           "or produced"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_CITY, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_CITY, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("geo location city"),
       _("city (english name) where the media has been recorded "
           "or produced"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_SUBLOCATION, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_SUBLOCATION, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("geo location sublocation"),
       _("a location whithin a city where the media has been produced "
           "or created (e.g. the neighborhood)"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR, GST_TAG_FLAG_META,
-      G_TYPE_DOUBLE, _("geo location horizontal error"),
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR,
+      GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location horizontal error"),
       _("expected error of the horizontal positioning measures (in meters)"),
       NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_MOVEMENT_SPEED, GST_TAG_FLAG_META,
-      G_TYPE_DOUBLE, _("geo location movement speed"),
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_MOVEMENT_SPEED,
+      GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location movement speed"),
       _("movement speed of the capturing device while performing the capture "
           "in m/s"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION, GST_TAG_FLAG_META,
-      G_TYPE_DOUBLE, _("geo location movement direction"),
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION,
+      GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location movement direction"),
       _("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"), NULL);
-  gst_tag_register (GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION, GST_TAG_FLAG_META,
-      G_TYPE_DOUBLE, _("geo location capture direction"),
+  gst_tag_register_static (GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION,
+      GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location capture direction"),
       _("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"), NULL);
-  gst_tag_register (GST_TAG_SHOW_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_SHOW_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
       /* TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here */
       _("show name"),
       _("Name of the tv/podcast/series show the media is from"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_SHOW_SORTNAME, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_SHOW_SORTNAME, GST_TAG_FLAG_META,
+      G_TYPE_STRING,
       /* TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here */
       _("show sortname"),
       _("Name of the tv/podcast/series show the media is from, for sorting "
           "purposes"), NULL);
-  gst_tag_register (GST_TAG_SHOW_EPISODE_NUMBER, GST_TAG_FLAG_META, G_TYPE_UINT,
-      _("episode number"),
+  gst_tag_register_static (GST_TAG_SHOW_EPISODE_NUMBER, GST_TAG_FLAG_META,
+      G_TYPE_UINT, _("episode number"),
       _("The episode number in the season the media is part of"),
       gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_SHOW_SEASON_NUMBER, GST_TAG_FLAG_META, G_TYPE_UINT,
-      _("season number"),
+  gst_tag_register_static (GST_TAG_SHOW_SEASON_NUMBER, GST_TAG_FLAG_META,
+      G_TYPE_UINT, _("season number"),
       _("The season number of the show the media is part of"),
       gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_LYRICS, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_LYRICS, GST_TAG_FLAG_META, G_TYPE_STRING,
       _("lyrics"), _("The lyrics of the media, commonly used for songs"),
       gst_tag_merge_strings_with_comma);
-  gst_tag_register (GST_TAG_COMPOSER_SORTNAME, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("composer sortname"),
+  gst_tag_register_static (GST_TAG_COMPOSER_SORTNAME, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("composer sortname"),
       _("person(s) who composed the recording, for sorting purposes"), NULL);
-  gst_tag_register (GST_TAG_GROUPING, GST_TAG_FLAG_META, G_TYPE_STRING,
+  gst_tag_register_static (GST_TAG_GROUPING, GST_TAG_FLAG_META, G_TYPE_STRING,
       _("grouping"),
       _("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"), NULL);
-  gst_tag_register (GST_TAG_USER_RATING, GST_TAG_FLAG_META, G_TYPE_UINT,
+  gst_tag_register_static (GST_TAG_USER_RATING, GST_TAG_FLAG_META, G_TYPE_UINT,
       _("user rating"),
       _("Rating attributed by a user. The higher the rank, "
           "the more the user likes this media"), NULL);
-  gst_tag_register (GST_TAG_DEVICE_MANUFACTURER, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_DEVICE_MANUFACTURER, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("device manufacturer"),
       _("Manufacturer of the device used to create this media"), NULL);
-  gst_tag_register (GST_TAG_DEVICE_MODEL, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("device model"),
+  gst_tag_register_static (GST_TAG_DEVICE_MODEL, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("device model"),
       _("Model of the device used to create this media"), NULL);
-  gst_tag_register (GST_TAG_APPLICATION_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("application name"), _("Application used to create the media"), NULL);
-  gst_tag_register (GST_TAG_APPLICATION_DATA, GST_TAG_FLAG_META,
+  gst_tag_register_static (GST_TAG_APPLICATION_NAME, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("application name"),
+      _("Application used to create the media"), NULL);
+  gst_tag_register_static (GST_TAG_APPLICATION_DATA, GST_TAG_FLAG_META,
       GST_TYPE_BUFFER, _("application data"),
       _("Arbitrary application data to be serialized into the media"), NULL);
-  gst_tag_register (GST_TAG_IMAGE_ORIENTATION, GST_TAG_FLAG_META, G_TYPE_STRING,
-      _("image orientation"),
+  gst_tag_register_static (GST_TAG_IMAGE_ORIENTATION, GST_TAG_FLAG_META,
+      G_TYPE_STRING, _("image orientation"),
       _("How the image should be rotated or flipped before display"), NULL);
 }
 
@@ -470,8 +487,36 @@
 gst_tag_register (const gchar * name, GstTagFlag flag, GType type,
     const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
 {
+  g_return_if_fail (name != NULL);
+  g_return_if_fail (nick != NULL);
+  g_return_if_fail (blurb != NULL);
+  g_return_if_fail (type != 0 && type != GST_TYPE_LIST);
+
+  return gst_tag_register_static (g_intern_string (name), flag, type,
+      g_intern_string (nick), g_intern_string (blurb), func);
+}
+
+/**
+ * gst_tag_register_static:
+ * @name: the name or identifier string (string constant)
+ * @flag: a flag describing the type of tag info
+ * @type: the type this data is in
+ * @nick: human-readable name or short description (string constant)
+ * @blurb: a human-readable description for this tag (string constant)
+ * @func: function for merging multiple values of this tag, or NULL
+ *
+ * Registers a new tag type for the use with GStreamer's type system.
+ *
+ * Same as gst_tag_register(), but @name, @nick, and @blurb must be
+ * static strings or inlined strings, as they will not be copied. (GStreamer
+ * plugins will be made resident once loaded, so this function can be used
+ * even from dynamically loaded plugins.)
+ */
+void
+gst_tag_register_static (const gchar * name, GstTagFlag flag, GType type,
+    const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
+{
   GstTagInfo *info;
-  gchar *name_dup;
 
   g_return_if_fail (name != NULL);
   g_return_if_fail (nick != NULL);
@@ -488,17 +533,13 @@
   info = g_slice_new (GstTagInfo);
   info->flag = flag;
   info->type = type;
-  info->nick = g_strdup (nick);
-  info->blurb = g_strdup (blurb);
+  info->name_quark = g_quark_from_static_string (name);
+  info->nick = nick;
+  info->blurb = blurb;
   info->merge_func = func;
 
-  /* we make a copy for the hash table anyway, which will stay around, so
-   * can use that for the quark table too */
-  name_dup = g_strdup (name);
-  info->name_quark = g_quark_from_static_string (name_dup);
-
   TAG_LOCK;
-  g_hash_table_insert (__tags, (gpointer) name_dup, info);
+  g_hash_table_insert (__tags, (gpointer) name, info);
   TAG_UNLOCK;
 }
 
@@ -621,19 +662,82 @@
   return info->merge_func == NULL;
 }
 
+static void
+gst_tag_list_init (GstTagList * taglist, gsize size)
+{
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (taglist),
+      gst_tag_list_get_type (), size);
+
+  taglist->mini_object.copy = (GstMiniObjectCopyFunction) __gst_tag_list_copy;
+  taglist->mini_object.dispose = NULL;
+  taglist->mini_object.free = (GstMiniObjectFreeFunction) __gst_tag_list_free;
+}
+
+/* takes ownership of the structure */
+static GstTagList *
+gst_tag_list_new_internal (GstStructure * s)
+{
+  GstTagList *tag_list;
+
+  g_assert (s != NULL);
+
+  tag_list = (GstTagList *) g_slice_new (GstTagListImpl);
+
+  gst_tag_list_init (tag_list, sizeof (GstTagListImpl));
+
+  GST_TAG_LIST_STRUCTURE (tag_list) = s;
+
+#ifdef DEBUG_REFCOUNT
+  GST_CAT_TRACE (GST_CAT_TAGS, "created taglist %p", tag_list);
+#endif
+
+  return tag_list;
+}
+
+static void
+__gst_tag_list_free (GstTagList * list)
+{
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+
+#ifdef DEBUG_REFCOUNT
+  GST_CAT_TRACE (GST_CAT_TAGS, "freeing caps %p", list);
+#endif
+
+  gst_structure_free (GST_TAG_LIST_STRUCTURE (list));
+
+  /* why not just pass sizeof (GstTagListImpl) here? */
+  g_slice_free1 (GST_MINI_OBJECT_SIZE (list), list);
+}
+
+static GstTagList *
+__gst_tag_list_copy (const GstTagList * list)
+{
+  const GstStructure *s;
+
+  g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
+
+  s = GST_TAG_LIST_STRUCTURE (list);
+  return gst_tag_list_new_internal (gst_structure_copy (s));
+}
+
 /**
  * gst_tag_list_new_empty:
  *
  * Creates a new empty GstTagList.
  *
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
  *
  * Returns: (transfer full): An empty tag list
  */
 GstTagList *
 gst_tag_list_new_empty (void)
 {
-  return GST_TAG_LIST (gst_structure_new_id_empty (GST_QUARK (TAGLIST)));
+  GstStructure *s;
+  GstTagList *tag_list;
+
+  s = gst_structure_new_id_empty (GST_QUARK (TAGLIST));
+  tag_list = gst_tag_list_new_internal (s);
+  return tag_list;
 }
 
 /**
@@ -649,9 +753,9 @@
  * function. The tag list will make copies of any arguments passed
  * (e.g. strings, buffers).
  *
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
  *
- * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_free()
+ * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_unref()
  *     when no longer needed.
  *
  * Since: 0.10.24
@@ -679,9 +783,9 @@
  * Just like gst_tag_list_new(), only that it takes a va_list argument.
  * Useful mostly for language bindings.
  *
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
  *
- * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_free()
+ * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_unref()
  *     when no longer needed.
  *
  * Since: 0.10.24
@@ -716,7 +820,7 @@
 {
   g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
 
-  return gst_structure_to_string (GST_STRUCTURE (list));
+  return gst_structure_to_string (GST_TAG_LIST_STRUCTURE (list));
 }
 
 /**
@@ -732,10 +836,13 @@
 GstTagList *
 gst_tag_list_new_from_string (const gchar * str)
 {
+  GstTagList *tag_list;
+
   g_return_val_if_fail (str != NULL, NULL);
   g_return_val_if_fail (g_str_has_prefix (str, "taglist"), NULL);
 
-  return GST_TAG_LIST (gst_structure_from_string (str, NULL));
+  tag_list = gst_tag_list_new_internal (gst_structure_from_string (str, NULL));
+  return tag_list;
 }
 
 /**
@@ -752,7 +859,7 @@
   g_return_val_if_fail (list != NULL, 0);
   g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
 
-  return gst_structure_n_fields ((GstStructure *) list);
+  return gst_structure_n_fields (GST_TAG_LIST_STRUCTURE (list));
 }
 
 /**
@@ -770,7 +877,7 @@
   g_return_val_if_fail (list != NULL, 0);
   g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
 
-  return gst_structure_nth_field_name ((GstStructure *) list, index);
+  return gst_structure_nth_field_name (GST_TAG_LIST_STRUCTURE (list), index);
 }
 
 /**
@@ -789,7 +896,7 @@
   g_return_val_if_fail (list != NULL, FALSE);
   g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE);
 
-  return (gst_structure_n_fields ((GstStructure *) list) == 0);
+  return (gst_structure_n_fields (GST_TAG_LIST_STRUCTURE (list)) == 0);
 }
 
 static gboolean
@@ -836,8 +943,8 @@
   /* we don't just use gst_structure_is_equal() here so we can add some
    * tolerance for doubles, though maybe we should just add that to
    * gst_value_compare_double() as well? */
-  s1 = (const GstStructure *) list1;
-  s2 = (const GstStructure *) list2;
+  s1 = GST_TAG_LIST_STRUCTURE (list1);
+  s2 = GST_TAG_LIST_STRUCTURE (list2);
 
   num_fields1 = gst_structure_n_fields (s1);
   num_fields2 = gst_structure_n_fields (s2);
@@ -863,24 +970,6 @@
   return TRUE;
 }
 
-/**
- * gst_is_tag_list:
- * @p: Object that might be a taglist
- *
- * Checks if the given pointer is a taglist.
- *
- * Returns: TRUE, if the given pointer is a taglist
- */
-gboolean
-gst_is_tag_list (gconstpointer p)
-{
-  GstStructure *s = (GstStructure *) p;
-
-  g_return_val_if_fail (p != NULL, FALSE);
-
-  return (GST_IS_STRUCTURE (s) && s->name == GST_QUARK (TAGLIST));
-}
-
 typedef struct
 {
   GstTagList *list;
@@ -892,7 +981,7 @@
 gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
     const gchar * tag, const GValue * value, GstTagInfo * info)
 {
-  GstStructure *list = GST_STRUCTURE (tag_list);
+  GstStructure *list = GST_TAG_LIST_STRUCTURE (tag_list);
   const GValue *value2;
   GQuark tag_quark;
 
@@ -981,34 +1070,17 @@
   GstTagCopyData data;
 
   g_return_if_fail (GST_IS_TAG_LIST (into));
+  g_return_if_fail (gst_tag_list_is_writable (into));
   g_return_if_fail (GST_IS_TAG_LIST (from));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
 
   data.list = into;
   data.mode = mode;
   if (mode == GST_TAG_MERGE_REPLACE_ALL) {
-    gst_structure_remove_all_fields (GST_STRUCTURE (data.list));
+    gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (into));
   }
-  gst_structure_foreach ((GstStructure *) from, gst_tag_list_copy_foreach,
-      &data);
-}
-
-/**
- * gst_tag_list_copy:
- * @list: list to copy
- *
- * Copies a given #GstTagList.
- *
- * Free-function: gst_tag_list_free
- *
- * Returns: (transfer full): copy of the given list
- */
-GstTagList *
-gst_tag_list_copy (const GstTagList * list)
-{
-  g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
-
-  return GST_TAG_LIST (gst_structure_copy ((GstStructure *) list));
+  gst_structure_foreach (GST_TAG_LIST_STRUCTURE (from),
+      gst_tag_list_copy_foreach, &data);
 }
 
 /**
@@ -1020,7 +1092,7 @@
  * Merges the two given lists into a new list. If one of the lists is NULL, a
  * copy of the other is returned. If both lists are NULL, NULL is returned.
  *
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
  *
  * Returns: (transfer full): the new list
  */
@@ -1047,25 +1119,12 @@
   gst_tag_list_insert (list1_cp, list2_cp, mode);
 
   if (!list2)
-    gst_tag_list_free ((GstTagList *) list2_cp);
+    gst_tag_list_unref ((GstTagList *) list2_cp);
 
   return list1_cp;
 }
 
 /**
- * gst_tag_list_free:
- * @list: (in) (transfer full): the list to free
- *
- * Frees the given list and all associated values.
- */
-void
-gst_tag_list_free (GstTagList * list)
-{
-  g_return_if_fail (GST_IS_TAG_LIST (list));
-  gst_structure_free ((GstStructure *) list);
-}
-
-/**
  * gst_tag_list_get_tag_size:
  * @list: a taglist
  * @tag: the tag to query
@@ -1081,7 +1140,7 @@
 
   g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
 
-  value = gst_structure_get_value ((GstStructure *) list, tag);
+  value = gst_structure_get_value (GST_TAG_LIST_STRUCTURE (list), tag);
   if (value == NULL)
     return 0;
   if (G_VALUE_TYPE (value) != GST_TYPE_LIST)
@@ -1106,6 +1165,7 @@
   va_list args;
 
   g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (gst_tag_list_is_writable (list));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
@@ -1130,6 +1190,7 @@
   va_list args;
 
   g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (gst_tag_list_is_writable (list));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
@@ -1155,11 +1216,12 @@
   gchar *error = NULL;
 
   g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (gst_tag_list_is_writable (list));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
   if (mode == GST_TAG_MERGE_REPLACE_ALL) {
-    gst_structure_remove_all_fields (GST_STRUCTURE (list));
+    gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (list));
   }
 
   while (tag != NULL) {
@@ -1199,11 +1261,12 @@
     const gchar * tag, va_list var_args)
 {
   g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (gst_tag_list_is_writable (list));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
   if (mode == GST_TAG_MERGE_REPLACE_ALL) {
-    gst_structure_remove_all_fields (GST_STRUCTURE (list));
+    gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (list));
   }
 
   while (tag != NULL) {
@@ -1236,6 +1299,7 @@
     const gchar * tag, const GValue * value)
 {
   g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (gst_tag_list_is_writable (list));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
@@ -1255,7 +1319,7 @@
   g_return_if_fail (GST_IS_TAG_LIST (list));
   g_return_if_fail (tag != NULL);
 
-  gst_structure_remove_field ((GstStructure *) list, tag);
+  gst_structure_remove_field (GST_TAG_LIST_STRUCTURE (list), tag);
 }
 
 typedef struct
@@ -1297,8 +1361,8 @@
   data.func = func;
   data.tag_list = list;
   data.data = user_data;
-  gst_structure_foreach ((GstStructure *) list, structure_foreach_wrapper,
-      &data);
+  gst_structure_foreach (GST_TAG_LIST_STRUCTURE (list),
+      structure_foreach_wrapper, &data);
 }
 
 /**
@@ -1322,7 +1386,7 @@
   g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
   g_return_val_if_fail (tag != NULL, NULL);
 
-  value = gst_structure_get_value ((GstStructure *) list, tag);
+  value = gst_structure_get_value (GST_TAG_LIST_STRUCTURE (list), tag);
   if (value == NULL)
     return NULL;
 
@@ -1362,7 +1426,7 @@
   g_return_val_if_fail (dest != NULL, FALSE);
   g_return_val_if_fail (G_VALUE_TYPE (dest) == 0, FALSE);
 
-  src = gst_structure_get_value ((GstStructure *) list, tag);
+  src = gst_structure_get_value (GST_TAG_LIST_STRUCTURE (list), tag);
   if (!src)
     return FALSE;
 
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index 00a2770..7940a31 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -132,6 +132,7 @@
  *
  * Extra tag flags used when registering tags.
  */
+/* FIXME: these are not really flags .. */
 typedef enum {
   GST_TAG_FLAG_UNDEFINED,
   GST_TAG_FLAG_META,
@@ -144,14 +145,18 @@
 
 /**
  * GstTagList:
+ * @mini_object: the parent type
  *
- * Opaque #GstTagList data structure.
+ * Object describing tags / metadata.
  */
 typedef struct _GstTagList GstTagList;
+struct _GstTagList {
+  GstMiniObject mini_object;
+};
 
 #define GST_TAG_LIST(x)       ((GstTagList *) (x))
-#define GST_IS_TAG_LIST(x)    ((x) != NULL && gst_is_tag_list (GST_TAG_LIST (x)))
 #define GST_TYPE_TAG_LIST     (gst_tag_list_get_type ())
+#define GST_IS_TAG_LIST(obj)  (GST_IS_MINI_OBJECT_TYPE((obj), GST_TYPE_TAG_LIST))
 
 /**
  * GstTagForeachFunc:
@@ -186,6 +191,13 @@
                                     const gchar     * blurb,
                                     GstTagMergeFunc   func);
 
+void         gst_tag_register_static (const gchar   * name,
+                                      GstTagFlag      flag,
+                                      GType           type,
+                                      const gchar   * nick,
+                                      const gchar   * blurb,
+                                      GstTagMergeFunc func);
+
 /* some default merging functions */
 void      gst_tag_merge_use_first          (GValue * dest, const GValue * src);
 void      gst_tag_merge_strings_with_comma (GValue * dest, const GValue * src);
@@ -206,8 +218,6 @@
 gchar      * gst_tag_list_to_string         (const GstTagList * list) G_GNUC_MALLOC;
 GstTagList * gst_tag_list_new_from_string   (const gchar      * str) G_GNUC_MALLOC;
 
-gboolean     gst_is_tag_list                (gconstpointer p);
-GstTagList * gst_tag_list_copy              (const GstTagList * list) G_GNUC_MALLOC;
 gint         gst_tag_list_n_tags            (const GstTagList * list);
 const gchar* gst_tag_list_nth_tag_name      (const GstTagList * list, guint index);
 gboolean     gst_tag_list_is_empty          (const GstTagList * list);
@@ -219,7 +229,6 @@
 GstTagList * gst_tag_list_merge             (const GstTagList * list1,
                                              const GstTagList * list2,
                                              GstTagMergeMode    mode) G_GNUC_MALLOC;
-void         gst_tag_list_free              (GstTagList       * list);
 guint        gst_tag_list_get_tag_size      (const GstTagList * list,
                                              const gchar      * tag);
 void         gst_tag_list_add               (GstTagList       * list,
@@ -346,6 +355,104 @@
                                              guint              index,
                                              GstBuffer       ** value);
 
+/* refcounting */
+/**
+ * gst_tag_list_ref:
+ * @taglist: the #GstTagList to reference
+ *
+ * Add a reference to a #GstTagList mini object.
+ *
+ * From this point on, until the caller calls gst_tag_list_unref() or
+ * gst_tag_list_make_writable(), it is guaranteed that the taglist object will
+ * not change. To use a #GstTagList object, you must always have a refcount on
+ * it -- either the one made implicitly by e.g. gst_tag_list_new(), or via
+ * taking one explicitly with this function.
+ *
+ * Returns: the same #GstTagList mini object.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstTagList * gst_tag_list_ref (GstTagList * taglist);
+#endif
+
+static inline GstTagList *
+gst_tag_list_ref (GstTagList * taglist)
+{
+  return (GstTagList *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (taglist));
+}
+
+/**
+ * gst_tag_list_unref:
+ * @taglist: a #GstTagList.
+ *
+ * Unref a #GstTagList, and and free all its memory when the refcount reaches 0.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_tag_list_unref (GstTagList * taglist);
+#endif
+
+static inline void
+gst_tag_list_unref (GstTagList * taglist)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (taglist));
+}
+
+/**
+ * gst_tag_list_copy:
+ * @taglist: a #GstTagList.
+ *
+ * Creates a new #GstTagList as a copy of the old @taglist. The new taglist
+ * will have a refcount of 1, owned by the caller, and will be writable as
+ * a result.
+ *
+ * Note that this function is the semantic equivalent of a gst_tag_list_ref()
+ * followed by a gst_tag_list_make_writable(). If you only want to hold on to a
+ * reference to the data, you should use gst_tag_list_ref().
+ *
+ * When you are finished with the taglist, call gst_tag_list_unref() on it.
+ *
+ * Returns: the new #GstTagList
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstTagList * gst_tag_list_copy (const GstTagList * taglist);
+#endif
+
+static inline GstTagList *
+gst_tag_list_copy (const GstTagList * taglist)
+{
+  return GST_TAG_LIST (gst_mini_object_copy (GST_MINI_OBJECT_CAST (taglist)));
+}
+
+/**
+ * gst_tag_list_is_writable:
+ * @taglist: a #GstTagList
+ *
+ * Tests if you can safely modify @taglist. It is only safe to modify taglist
+ * when there is only one owner of the taglist - ie, the refcount is 1.
+ */
+#define gst_tag_list_is_writable(taglist)    gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (taglist))
+
+/**
+ * gst_tag_list_make_writable:
+ * @taglist: (transfer full): a #GstTagList
+ *
+ * Returns a writable copy of @taglist.
+ *
+ * If there is only one reference count on @taglist, the caller must be the
+ * owner, and so this function will return the taglist object unchanged. If on
+ * the other hand there is more than one reference on the object, a new taglist
+ * object will be returned (which will be a copy of @taglist). The caller's
+ * reference on @taglist will be removed, and instead the caller will own a
+ * reference to the returned object.
+ *
+ * In short, this function unrefs the taglist in the argument and refs the
+ * taglist that it returns. Don't access the argument after calling this
+ * function. See also: gst_tag_list_ref().
+ *
+ * Returns: (transfer full): a writable taglist which may or may not be the
+ *     same as @taglist
+ */
+#define gst_tag_list_make_writable(taglist)   GST_TAG_LIST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (taglist)))
+
 /* GStreamer core tags */
 /**
  * GST_TAG_TITLE:
@@ -723,7 +830,7 @@
 /**
  * GST_TAG_IMAGE:
  *
- * image (sample) (sample caps should specify the content type and preferably
+ * image (sample) (sample taglist should specify the content type and preferably
  * also set "image-type" field as #GstTagImageType)
  *
  * Since: 0.10.6
@@ -733,7 +840,7 @@
  * GST_TAG_PREVIEW_IMAGE:
  *
  * image that is meant for preview purposes, e.g. small icon-sized version
- * (sample) (sample caps should specify the content type)
+ * (sample) (sample taglist should specify the content type)
  *
  * Since: 0.10.7
  */
@@ -742,7 +849,7 @@
 /**
  * GST_TAG_ATTACHMENT:
  *
- * generic file attachment (sample) (sample caps should specify the content
+ * generic file attachment (sample) (sample taglist should specify the content
  * type and if possible set "filename" to the file name of the
  * attachment)
  *
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index 2ed099d..b538c59 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -126,7 +126,7 @@
   GstTagData *data = (GstTagData *) p;
 
   if (data->list)
-    gst_tag_list_free (data->list);
+    gst_tag_list_unref (data->list);
 
   g_mutex_clear (&data->lock);
 
@@ -181,7 +181,7 @@
 
   GST_TAG_DATA_LOCK (data);
   if (data->list) {
-    gst_tag_list_free (data->list);
+    gst_tag_list_unref (data->list);
     data->list = NULL;
   }
   GST_TAG_DATA_UNLOCK (data);
diff --git a/gst/gsttoc.c b/gst/gsttoc.c
index 0ea0f33..b79717b 100644
--- a/gst/gsttoc.c
+++ b/gst/gsttoc.c
@@ -70,90 +70,12 @@
 #include "gstvalue.h"
 #include "gsttoc.h"
 #include "gstpad.h"
+#include "gstquark.h"
 
-#define GST_TOC_TOC_NAME            "toc"
-#define GST_TOC_ENTRY_NAME          "entry"
-
-#define GST_TOC_TOC_UPDATED_FIELD   "updated"
-#define GST_TOC_TOC_EXTENDUID_FIELD "extenduid"
-#define GST_TOC_INFO_FIELD          "info"
-
-#define GST_TOC_ENTRY_UID_FIELD     "uid"
-#define GST_TOC_ENTRY_TYPE_FIELD    "type"
-#define GST_TOC_ENTRY_TAGS_FIELD    "tags"
-
-#define GST_TOC_TOC_ENTRIES_FIELD   "subentries"
-
-#define GST_TOC_INFO_NAME           "info-structure"
-#define GST_TOC_INFO_TIME_FIELD     "time"
-
-#define GST_TOC_TIME_NAME           "time-structure"
-#define GST_TOC_TIME_START_FIELD    "start"
-#define GST_TOC_TIME_STOP_FIELD     "stop"
-
-
-enum
-{
-  GST_TOC_TOC = 0,
-  GST_TOC_ENTRY = 1,
-  GST_TOC_UPDATED = 2,
-  GST_TOC_EXTENDUID = 3,
-  GST_TOC_UID = 4,
-  GST_TOC_TYPE = 5,
-  GST_TOC_TAGS = 6,
-  GST_TOC_SUBENTRIES = 7,
-  GST_TOC_INFO = 8,
-  GST_TOC_INFONAME = 9,
-  GST_TOC_TIME = 10,
-  GST_TOC_TIMENAME = 11,
-  GST_TOC_TIME_START = 12,
-  GST_TOC_TIME_STOP = 13,
-  GST_TOC_LAST = 14
-};
-
-static GQuark gst_toc_fields[GST_TOC_LAST] = { 0 };
-
-void
-_priv_gst_toc_initialize (void)
-{
-  static gboolean inited = FALSE;
-
-  if (G_LIKELY (!inited)) {
-    gst_toc_fields[GST_TOC_TOC] = g_quark_from_static_string (GST_TOC_TOC_NAME);
-    gst_toc_fields[GST_TOC_ENTRY] =
-        g_quark_from_static_string (GST_TOC_ENTRY_NAME);
-
-    gst_toc_fields[GST_TOC_UPDATED] =
-        g_quark_from_static_string (GST_TOC_TOC_UPDATED_FIELD);
-    gst_toc_fields[GST_TOC_EXTENDUID] =
-        g_quark_from_static_string (GST_TOC_TOC_EXTENDUID_FIELD);
-    gst_toc_fields[GST_TOC_INFO] =
-        g_quark_from_static_string (GST_TOC_INFO_FIELD);
-
-    gst_toc_fields[GST_TOC_UID] =
-        g_quark_from_static_string (GST_TOC_ENTRY_UID_FIELD);
-    gst_toc_fields[GST_TOC_TYPE] =
-        g_quark_from_static_string (GST_TOC_ENTRY_TYPE_FIELD);
-    gst_toc_fields[GST_TOC_TAGS] =
-        g_quark_from_static_string (GST_TOC_ENTRY_TAGS_FIELD);
-
-    gst_toc_fields[GST_TOC_SUBENTRIES] =
-        g_quark_from_static_string (GST_TOC_TOC_ENTRIES_FIELD);
-
-    gst_toc_fields[GST_TOC_INFONAME] =
-        g_quark_from_static_string (GST_TOC_INFO_NAME);
-    gst_toc_fields[GST_TOC_TIME] =
-        g_quark_from_static_string (GST_TOC_INFO_TIME_FIELD);
-    gst_toc_fields[GST_TOC_TIMENAME] =
-        g_quark_from_static_string (GST_TOC_TIME_NAME);
-    gst_toc_fields[GST_TOC_TIME_START] =
-        g_quark_from_static_string (GST_TOC_TIME_START_FIELD);
-    gst_toc_fields[GST_TOC_TIME_STOP] =
-        g_quark_from_static_string (GST_TOC_TIME_STOP_FIELD);
-
-    inited = TRUE;
-  }
-}
+G_DEFINE_BOXED_TYPE (GstToc, gst_toc,
+    (GBoxedCopyFunc) gst_toc_copy, (GBoxedFreeFunc) gst_toc_free);
+G_DEFINE_BOXED_TYPE (GstTocEntry, gst_toc_entry,
+    (GBoxedCopyFunc) gst_toc_entry_copy, (GBoxedFreeFunc) gst_toc_entry_free);
 
 /**
  * gst_toc_new:
@@ -171,7 +93,7 @@
 
   toc = g_slice_new0 (GstToc);
   toc->tags = gst_tag_list_new_empty ();
-  toc->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+  toc->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
 
   return toc;
 }
@@ -198,7 +120,7 @@
   entry->uid = g_strdup (uid);
   entry->type = type;
   entry->tags = gst_tag_list_new_empty ();
-  entry->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+  entry->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
 
   return entry;
 }
@@ -218,7 +140,7 @@
  */
 GstTocEntry *
 gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar * uid,
-    gpointer pad)
+    GstPad * pad)
 {
   GstTocEntry *entry;
 
@@ -228,7 +150,7 @@
   entry->uid = g_strdup (uid);
   entry->type = type;
   entry->tags = gst_tag_list_new_empty ();
-  entry->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+  entry->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
 
   if (pad != NULL && GST_IS_PAD (pad))
     entry->pads = g_list_append (entry->pads, gst_object_ref (pad));
@@ -253,7 +175,7 @@
   g_list_free (toc->entries);
 
   if (toc->tags != NULL)
-    gst_tag_list_free (toc->tags);
+    gst_tag_list_unref (toc->tags);
 
   if (toc->info != NULL)
     gst_structure_free (toc->info);
@@ -284,7 +206,7 @@
   g_free (entry->uid);
 
   if (entry->tags != NULL)
-    gst_tag_list_free (entry->tags);
+    gst_tag_list_unref (entry->tags);
 
   if (entry->info != NULL)
     gst_structure_free (entry->info);
@@ -305,22 +227,16 @@
 gst_toc_structure_new (GstTagList * tags, GstStructure * info)
 {
   GstStructure *ret;
-  GValue val = { 0 };
 
-  ret = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_TOC]);
+  ret = gst_structure_new_id_empty (GST_QUARK (TOC));
 
   if (tags != NULL) {
-    g_value_init (&val, GST_TYPE_STRUCTURE);
-    gst_value_set_structure (&val, GST_STRUCTURE (tags));
-    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_TAGS], &val);
-    g_value_unset (&val);
+    gst_structure_id_set (ret, GST_QUARK (TAGS), GST_TYPE_TAG_LIST, tags, NULL);
   }
 
   if (info != NULL) {
-    g_value_init (&val, GST_TYPE_STRUCTURE);
-    gst_value_set_structure (&val, info);
-    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_INFO], &val);
-    g_value_unset (&val);
+    gst_structure_id_set (ret, GST_QUARK (INFO), GST_TYPE_STRUCTURE, info,
+        NULL);
   }
 
   return ret;
@@ -330,31 +246,21 @@
 gst_toc_entry_structure_new (GstTocEntryType type, const gchar * uid,
     GstTagList * tags, GstStructure * info)
 {
-  GValue val = { 0 };
   GstStructure *ret;
 
-  ret = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_ENTRY]);
+  ret = gst_structure_new_id_empty (GST_QUARK (TOC_ENTRY));
 
-  gst_structure_id_set (ret, gst_toc_fields[GST_TOC_TYPE],
-      GST_TYPE_TOC_ENTRY_TYPE, type, NULL);
-
-  g_value_init (&val, G_TYPE_STRING);
-  g_value_set_string (&val, uid);
-  gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_UID], &val);
-  g_value_unset (&val);
+  gst_structure_id_set (ret, GST_QUARK (TYPE), GST_TYPE_TOC_ENTRY_TYPE, type,
+      NULL);
+  gst_structure_id_set (ret, GST_QUARK (UID), G_TYPE_STRING, uid, NULL);
 
   if (tags != NULL) {
-    g_value_init (&val, GST_TYPE_STRUCTURE);
-    gst_value_set_structure (&val, GST_STRUCTURE (tags));
-    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_TAGS], &val);
-    g_value_unset (&val);
+    gst_structure_id_set (ret, GST_QUARK (TAGS), GST_TYPE_TAG_LIST, tags, NULL);
   }
 
   if (info != NULL) {
-    g_value_init (&val, GST_TYPE_STRUCTURE);
-    gst_value_set_structure (&val, info);
-    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_INFO], &val);
-    g_value_unset (&val);
+    gst_structure_id_set (ret, GST_QUARK (INFO), GST_TYPE_STRUCTURE, info,
+        NULL);
   }
 
   return ret;
@@ -364,11 +270,11 @@
 gst_toc_entry_structure_n_subentries (const GstStructure * entry)
 {
   if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
-              gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)))
+              GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)))
     return 0;
   else
     return gst_value_array_get_size ((gst_structure_id_get_value (entry,
-                gst_toc_fields[GST_TOC_SUBENTRIES])));
+                GST_QUARK (SUB_ENTRIES))));
 }
 
 static const GstStructure *
@@ -383,12 +289,12 @@
     return NULL;
 
   if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
-              gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)))
+              GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)))
     return NULL;
   else {
     array =
         gst_value_array_get_value (gst_structure_id_get_value (entry,
-            gst_toc_fields[GST_TOC_SUBENTRIES]), nth);
+            GST_QUARK (SUB_ENTRIES)), nth);
     return gst_value_get_structure (array);
   }
 }
@@ -407,20 +313,20 @@
 
   g_return_val_if_fail (entry != NULL, NULL);
   g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
-          gst_toc_fields[GST_TOC_UID], G_TYPE_STRING), NULL);
+          GST_QUARK (UID), G_TYPE_STRING), NULL);
   g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
-          gst_toc_fields[GST_TOC_TYPE], GST_TYPE_TOC_ENTRY_TYPE), NULL);
+          GST_QUARK (TYPE), GST_TYPE_TOC_ENTRY_TYPE), NULL);
 
-  val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_UID]);
+  val = gst_structure_id_get_value (entry, GST_QUARK (UID));
   uid = g_value_get_string (val);
 
   ret = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, uid);
 
-  gst_structure_get_enum (entry, GST_TOC_ENTRY_TYPE_FIELD,
+  gst_structure_get_enum (entry, g_quark_to_string (GST_QUARK (TYPE)),
       GST_TYPE_TOC_ENTRY_TYPE, (gint *) & (ret->type));
 
   if (gst_structure_id_has_field_typed (entry,
-          gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)) {
+          GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)) {
     count = gst_toc_entry_structure_n_subentries (entry);
 
     for (i = 0; i < count; ++i) {
@@ -460,20 +366,20 @@
     ret->subentries = g_list_reverse (ret->subentries);
   }
 
-  if (gst_structure_id_has_field_typed (entry,
-          gst_toc_fields[GST_TOC_TAGS], GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_TAGS]);
+  if (gst_structure_id_has_field_typed (entry, GST_QUARK (TAGS),
+          GST_TYPE_TAG_LIST)) {
+    val = gst_structure_id_get_value (entry, GST_QUARK (TAGS));
 
-    if (G_LIKELY (GST_IS_TAG_LIST (gst_value_get_structure (val)))) {
-      list = gst_tag_list_copy (GST_TAG_LIST (gst_value_get_structure (val)));
-      gst_tag_list_free (ret->tags);
+    if (G_LIKELY (GST_IS_TAG_LIST (g_value_get_boxed (val)))) {
+      list = gst_tag_list_copy (GST_TAG_LIST (g_value_get_boxed (val)));
+      gst_tag_list_unref (ret->tags);
       ret->tags = list;
     }
   }
 
   if (gst_structure_id_has_field_typed (entry,
-          gst_toc_fields[GST_TOC_INFO], GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_INFO]);
+          GST_QUARK (INFO), GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (entry, GST_QUARK (INFO));
 
     if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
       st = gst_structure_copy (gst_value_get_structure (val));
@@ -502,7 +408,7 @@
   ret = gst_toc_new ();
 
   if (gst_structure_id_has_field_typed (toc,
-          gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)) {
+          GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)) {
     count = gst_toc_entry_structure_n_subentries (toc);
 
     for (i = 0; i < count; ++i) {
@@ -544,20 +450,20 @@
     ret->entries = g_list_reverse (ret->entries);
   }
 
-  if (gst_structure_id_has_field_typed (toc,
-          gst_toc_fields[GST_TOC_TAGS], GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_TAGS]);
+  if (gst_structure_id_has_field_typed (toc, GST_QUARK (TAGS),
+          GST_TYPE_TAG_LIST)) {
+    val = gst_structure_id_get_value (toc, GST_QUARK (TAGS));
 
-    if (G_LIKELY (GST_IS_TAG_LIST (gst_value_get_structure (val)))) {
-      list = gst_tag_list_copy (GST_TAG_LIST (gst_value_get_structure (val)));
-      gst_tag_list_free (ret->tags);
+    if (G_LIKELY (GST_IS_TAG_LIST (g_value_get_boxed (val)))) {
+      list = gst_tag_list_copy (GST_TAG_LIST (g_value_get_boxed (val)));
+      gst_tag_list_unref (ret->tags);
       ret->tags = list;
     }
   }
 
   if (gst_structure_id_has_field_typed (toc,
-          gst_toc_fields[GST_TOC_INFO], GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_INFO]);
+          GST_QUARK (INFO), GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (toc, GST_QUARK (INFO));
 
     if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
       st = gst_structure_copy (gst_value_get_structure (val));
@@ -647,8 +553,7 @@
     cur = cur->next;
   }
 
-  gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_SUBENTRIES],
-      &subentries_val);
+  gst_structure_id_set_value (ret, GST_QUARK (SUB_ENTRIES), &subentries_val);
 
   g_value_unset (&subentries_val);
   g_value_unset (&entry_val);
@@ -719,8 +624,7 @@
     cur = cur->next;
   }
 
-  gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_SUBENTRIES],
-      &subentries_val);
+  gst_structure_id_set_value (ret, GST_QUARK (SUB_ENTRIES), &subentries_val);
 
   g_value_unset (&val);
   g_value_unset (&subentries_val);
@@ -808,7 +712,7 @@
 
   if (GST_IS_TAG_LIST (entry->tags)) {
     list = gst_tag_list_copy (entry->tags);
-    gst_tag_list_free (ret->tags);
+    gst_tag_list_unref (ret->tags);
     ret->tags = list;
   }
 
@@ -866,7 +770,7 @@
 
   if (GST_IS_TAG_LIST (toc->tags)) {
     list = gst_tag_list_copy (toc->tags);
-    gst_tag_list_free (ret->tags);
+    gst_tag_list_unref (ret->tags);
     ret->tags = list;
   }
 
@@ -903,21 +807,19 @@
   g_return_if_fail (entry != NULL);
   g_return_if_fail (GST_IS_STRUCTURE (entry->info));
 
-  if (gst_structure_id_has_field_typed (entry->info,
-          gst_toc_fields[GST_TOC_TIME], GST_TYPE_STRUCTURE)) {
-    val =
-        gst_structure_id_get_value (entry->info, gst_toc_fields[GST_TOC_TIME]);
+  if (gst_structure_id_has_field_typed (entry->info, GST_QUARK (TIME),
+          GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (entry->info, GST_QUARK (TIME));
     structure = gst_structure_copy (gst_value_get_structure (val));
   }
 
   if (structure == NULL)
-    structure = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_TIMENAME]);
+    structure = gst_structure_new_id_empty (GST_QUARK (TIME_STRUCTURE));
 
-  gst_structure_id_set (structure, gst_toc_fields[GST_TOC_TIME_START],
-      G_TYPE_INT64, start, gst_toc_fields[GST_TOC_TIME_STOP], G_TYPE_INT64,
-      stop, NULL);
+  gst_structure_id_set (structure, GST_QUARK (START),
+      G_TYPE_INT64, start, GST_QUARK (STOP), G_TYPE_INT64, stop, NULL);
 
-  gst_structure_id_set (entry->info, gst_toc_fields[GST_TOC_TIME],
+  gst_structure_id_set (entry->info, GST_QUARK (TIME),
       GST_TYPE_STRUCTURE, structure, NULL);
 
   gst_structure_free (structure);
@@ -948,28 +850,28 @@
   g_return_val_if_fail (GST_IS_STRUCTURE (entry->info), FALSE);
 
   if (!gst_structure_id_has_field_typed (entry->info,
-          gst_toc_fields[GST_TOC_TIME], GST_TYPE_STRUCTURE))
+          GST_QUARK (TIME), GST_TYPE_STRUCTURE))
     return FALSE;
 
-  val = gst_structure_id_get_value (entry->info, gst_toc_fields[GST_TOC_TIME]);
+  val = gst_structure_id_get_value (entry->info, GST_QUARK (TIME));
   structure = gst_value_get_structure (val);
 
   if (start != NULL) {
     if (gst_structure_id_has_field_typed (structure,
-            gst_toc_fields[GST_TOC_TIME_START], G_TYPE_INT64))
+            GST_QUARK (START), G_TYPE_INT64))
       *start =
           g_value_get_int64 (gst_structure_id_get_value (structure,
-              gst_toc_fields[GST_TOC_TIME_START]));
+              GST_QUARK (START)));
     else
       ret = FALSE;
   }
 
   if (stop != NULL) {
     if (gst_structure_id_has_field_typed (structure,
-            gst_toc_fields[GST_TOC_TIME_STOP], G_TYPE_INT64))
+            GST_QUARK (STOP), G_TYPE_INT64))
       *stop =
           g_value_get_int64 (gst_structure_id_get_value (structure,
-              gst_toc_fields[GST_TOC_TIME_STOP]));
+              GST_QUARK (STOP)));
     else
       ret = FALSE;
   }
@@ -977,6 +879,25 @@
   return ret;
 }
 
+/**
+ * gst_toc_entry_type_get_nick:
+ * @type: a #GstTocEntryType.
+ *
+ * Converts @type to a string representation.
+ *
+ * Returns: Returns the human-readable @type. Can be NULL if an error occurred.
+ * Since: 0.11.92
+ */
+const gchar *
+gst_toc_entry_type_get_nick (GstTocEntryType type)
+{
+  const gchar *entry_types[] = { "chapter", "edition" };
+
+  g_return_val_if_fail ((gint) type >= 0
+      && (gint) type < G_N_ELEMENTS (entry_types), NULL);
+  return entry_types[type];
+}
+
 gboolean
 __gst_toc_structure_get_updated (const GstStructure * toc)
 {
@@ -985,8 +906,8 @@
   g_return_val_if_fail (GST_IS_STRUCTURE (toc), FALSE);
 
   if (G_LIKELY (gst_structure_id_has_field_typed (toc,
-              gst_toc_fields[GST_TOC_UPDATED], G_TYPE_BOOLEAN))) {
-    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_UPDATED]);
+              GST_QUARK (UPDATED), G_TYPE_BOOLEAN))) {
+    val = gst_structure_id_get_value (toc, GST_QUARK (UPDATED));
     return g_value_get_boolean (val);
   }
 
@@ -996,14 +917,10 @@
 void
 __gst_toc_structure_set_updated (GstStructure * toc, gboolean updated)
 {
-  GValue val = { 0 };
-
   g_return_if_fail (toc != NULL);
 
-  g_value_init (&val, G_TYPE_BOOLEAN);
-  g_value_set_boolean (&val, updated);
-  gst_structure_id_set_value (toc, gst_toc_fields[GST_TOC_UPDATED], &val);
-  g_value_unset (&val);
+  gst_structure_id_set (toc, GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated,
+      NULL);
 }
 
 gchar *
@@ -1014,8 +931,8 @@
   g_return_val_if_fail (GST_IS_STRUCTURE (toc), NULL);
 
   if (G_LIKELY (gst_structure_id_has_field_typed (toc,
-              gst_toc_fields[GST_TOC_EXTENDUID], G_TYPE_STRING))) {
-    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_EXTENDUID]);
+              GST_QUARK (EXTEND_UID), G_TYPE_STRING))) {
+    val = gst_structure_id_get_value (toc, GST_QUARK (EXTEND_UID));
     return g_strdup (g_value_get_string (val));
   }
 
@@ -1026,13 +943,9 @@
 __gst_toc_structure_set_extend_uid (GstStructure * toc,
     const gchar * extend_uid)
 {
-  GValue val = { 0 };
-
   g_return_if_fail (toc != NULL);
   g_return_if_fail (extend_uid != NULL);
 
-  g_value_init (&val, G_TYPE_STRING);
-  g_value_set_string (&val, extend_uid);
-  gst_structure_id_set_value (toc, gst_toc_fields[GST_TOC_EXTENDUID], &val);
-  g_value_unset (&val);
+  gst_structure_id_set (toc, GST_QUARK (EXTEND_UID), G_TYPE_STRING, extend_uid,
+      NULL);
 }
diff --git a/gst/gsttoc.h b/gst/gsttoc.h
index a1a7b8c..d59cf84 100644
--- a/gst/gsttoc.h
+++ b/gst/gsttoc.h
@@ -29,6 +29,9 @@
 
 G_BEGIN_DECLS
 
+#define GST_TYPE_TOC (gst_toc_get_type ())
+#define GST_TYPE_TOC_ENTRY (gst_toc_entry_get_type ())
+
 typedef struct _GstTocEntry GstTocEntry;
 typedef struct _GstToc GstToc;
 
@@ -90,10 +93,14 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
+/* functions to return type structures */
+GType           gst_toc_get_type                (void);
+GType           gst_toc_entry_get_type          (void);
+
 /* functions to create new structures */
 GstToc *        gst_toc_new                     (void);
 GstTocEntry *   gst_toc_entry_new               (GstTocEntryType type, const gchar *uid);
-GstTocEntry *   gst_toc_entry_new_with_pad      (GstTocEntryType type, const gchar *uid, gpointer pad);
+GstTocEntry *   gst_toc_entry_new_with_pad      (GstTocEntryType type, const gchar *uid, GstPad * pad);
 
 /* functions to free structures */
 void            gst_toc_entry_free              (GstTocEntry *entry);
@@ -105,6 +112,7 @@
 
 void            gst_toc_entry_set_start_stop    (GstTocEntry *entry, gint64 start, gint64 stop);
 gboolean        gst_toc_entry_get_start_stop    (const GstTocEntry *entry, gint64 *start, gint64 *stop);
+const gchar *   gst_toc_entry_type_get_nick     (GstTocEntryType type);
 
 G_END_DECLS
 
diff --git a/gst/gsturi.c b/gst/gsturi.c
index afe2907..90e7461 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -578,6 +578,8 @@
   g_return_val_if_fail (GST_URI_TYPE_IS_VALID (type), NULL);
   g_return_val_if_fail (gst_uri_is_valid (uri), NULL);
 
+  GST_DEBUG ("type:%d, uri:%s, elementname:%s", type, uri, elementname);
+
   protocol = gst_uri_get_protocol (uri);
   possibilities = get_element_factories_from_uri_protocol (type, protocol);
   g_free (protocol);
@@ -598,6 +600,7 @@
 
       if (gst_uri_handler_set_uri (handler, uri, NULL))
         break;
+      GST_WARNING ("element %s didn't accept the URI", GST_ELEMENT_NAME (ret));
       gst_object_unref (ret);
       ret = NULL;
     }
diff --git a/gst/gstutils.c b/gst/gstutils.c
index 7771862..5c15341 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -2364,8 +2364,8 @@
  * PAUSED. If the element supports seek in READY, it will always return %TRUE when
  * it receives the event in the READY state.
  *
- * Returns: %TRUE if the seek operation succeeded (the seek might not always be
- * executed instantly though)
+ * Returns: %TRUE if the seek operation succeeded. Flushing seeks will trigger a
+ * preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
  *
  * Since: 0.10.7
  */
@@ -2931,7 +2931,8 @@
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
   g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "accept caps of %p", caps);
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "accept caps of %"
+      GST_PTR_FORMAT, caps);
 
   query = gst_query_new_accept_caps (caps);
   if (gst_pad_query (pad, query)) {
diff --git a/gst/parse/Makefile.in b/gst/parse/Makefile.in
index 5915f4d..17fcfe4 100644
--- a/gst/parse/Makefile.in
+++ b/gst/parse/Makefile.in
@@ -52,6 +52,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = gst/parse
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -257,6 +258,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@
 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@
diff --git a/gstreamer.doap b/gstreamer.doap
index f21642f..9e70e16 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>0.11.92</revision>
+   <branch>0.11</branch>
+   <name>High Hopes</name>
+   <created>2012-06-07</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.92.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>0.11.91</revision>
    <branch>0.11</branch>
    <name>I will give you five magic beans!</name>
diff --git a/gstreamer.spec b/gstreamer.spec
index 79ae557..0c60a04 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -4,7 +4,7 @@
 %define 	_glib2		2.31.14
 
 Name: 		%{gstreamer}
-Version: 	0.11.91
+Version: 	0.11.92
 Release: 	1
 Summary: 	GStreamer streaming media framework runtime
 
diff --git a/libs/Makefile.in b/libs/Makefile.in
index dc97f29..90abb56 100644
--- a/libs/Makefile.in
+++ b/libs/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = libs
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -257,6 +258,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@
 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@
diff --git a/libs/gst/Makefile.in b/libs/gst/Makefile.in
index 2f91786..9e2ee97 100644
--- a/libs/gst/Makefile.in
+++ b/libs/gst/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = libs/gst
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -256,6 +257,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -408,7 +413,11 @@
 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@
diff --git a/libs/gst/base/Makefile.in b/libs/gst/base/Makefile.in
index ed702b5..474b77e 100644
--- a/libs/gst/base/Makefile.in
+++ b/libs/gst/base/Makefile.in
@@ -53,6 +53,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+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) \
@@ -300,6 +301,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -452,7 +457,11 @@
 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@
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index b27edcf..2e61430 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -550,16 +550,7 @@
   copy_into_unchecked (adapter, dest, offset + adapter->skip, size);
 }
 
-/**
- * gst_adapter_flush:
- * @adapter: a #GstAdapter
- * @flush: the number of bytes to flush
- *
- * Flushes the first @flush bytes in the @adapter. The caller must ensure that
- * at least this many bytes are available.
- *
- * See also: gst_adapter_map(), gst_adapter_unmap()
- */
+/*Flushes the first @flush bytes in the @adapter*/
 static void
 gst_adapter_flush_unchecked (GstAdapter * adapter, gsize flush)
 {
@@ -615,6 +606,16 @@
   adapter->scan_entry = NULL;
 }
 
+/**
+ * gst_adapter_flush:
+ * @adapter: a #GstAdapter
+ * @flush: the number of bytes to flush
+ *
+ * Flushes the first @flush bytes in the @adapter. The caller must ensure that
+ * at least this many bytes are available.
+ *
+ * See also: gst_adapter_map(), gst_adapter_unmap()
+ */
 void
 gst_adapter_flush (GstAdapter * adapter, gsize flush)
 {
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 8067e53..e2f9d97 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -1407,7 +1407,8 @@
       parse->priv->max_bitrate);
 
   if (taglist != NULL) {
-    gst_pad_push_event (parse->srcpad, gst_event_new_tag (taglist));
+    gst_pad_push_event (parse->srcpad, gst_event_new_tag ("GstParser",
+            taglist));
   }
 }
 
@@ -1778,11 +1779,6 @@
   GST_LOG_OBJECT (parse, "handle_frame skipped %d, flushed %d",
       *skip, *flushed);
 
-  if (ret != GST_FLOW_OK) {
-    GST_DEBUG_OBJECT (parse, "handle_frame returned %d", ret);
-    goto exit;
-  }
-
   /* subclass can only do one of these, or semantics are too unclear */
   g_assert (*skip == 0 || *flushed == 0);
 
@@ -1817,7 +1813,6 @@
 
   parse->priv->offset += *flushed;
 
-exit:
   if (parse->priv->pad_mode == GST_PAD_MODE_PULL) {
     gst_adapter_clear (parse->priv->adapter);
   }
diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c
index e404ed4..d1e9e70 100644
--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -523,7 +523,7 @@
    */
   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 (unused)", 0, G_MAXUINT64,
+          "The time to keep between rendered buffers", 0, G_MAXUINT64,
           DEFAULT_THROTTLE_TIME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->change_state =
@@ -2003,8 +2003,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);
@@ -2148,6 +2148,11 @@
             GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
 
         bclass = GST_BASE_SINK_GET_CLASS (sink);
+
+        if (bclass->prepare)
+          if ((ret = bclass->prepare (sink, buf)) != GST_FLOW_OK)
+            goto prepare_canceled;
+
         if (bclass->preroll)
           if ((ret = bclass->preroll (sink, buf)) != GST_FLOW_OK)
             goto preroll_canceled;
@@ -2174,6 +2179,12 @@
   return GST_FLOW_OK;
 
   /* ERRORS */
+prepare_canceled:
+  {
+    GST_DEBUG_OBJECT (sink, "prepare failed, abort state");
+    gst_element_abort_state (GST_ELEMENT_CAST (sink));
+    return ret;
+  }
 preroll_canceled:
   {
     GST_DEBUG_OBJECT (sink, "preroll failed, abort state");
@@ -3068,7 +3079,7 @@
  */
 static GstFlowReturn
 gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad,
-    gpointer obj)
+    gpointer obj, gboolean is_list)
 {
   GstBaseSinkClass *bclass;
   GstBaseSinkPrivate *priv = basesink->priv;
@@ -3085,7 +3096,7 @@
   if (G_UNLIKELY (priv->received_eos))
     goto was_eos;
 
-  if (GST_IS_BUFFER_LIST (obj)) {
+  if (is_list) {
     sync_buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
     g_assert (NULL != sync_buf);
   } else {
@@ -3138,6 +3149,20 @@
       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;
+    }
+  }
+
 again:
   late = FALSE;
   step_end = FALSE;
@@ -3162,7 +3187,7 @@
   if (do_qos)
     gst_base_sink_do_render_stats (basesink, TRUE);
 
-  if (!GST_IS_BUFFER_LIST (obj)) {
+  if (!is_list) {
     /* For buffer lists do not set last buffer for now. */
     gst_base_sink_set_last_buffer (basesink, GST_BUFFER_CAST (obj));
 
@@ -3219,6 +3244,13 @@
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
     return GST_FLOW_OK;
   }
+prepare_failed:
+  {
+    GST_DEBUG_OBJECT (basesink, "prepare buffer failed %s",
+        gst_flow_get_name (ret));
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
+    return ret;
+  }
 sync_failed:
   {
     GST_DEBUG_OBJECT (basesink, "do_sync returned %s", gst_flow_get_name (ret));
@@ -3262,7 +3294,8 @@
 /* with STREAM_LOCK
  */
 static GstFlowReturn
-gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad, gpointer obj)
+gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad, gpointer obj,
+    gboolean is_list)
 {
   GstFlowReturn result;
 
@@ -3270,7 +3303,7 @@
     goto wrong_mode;
 
   GST_BASE_SINK_PREROLL_LOCK (basesink);
-  result = gst_base_sink_chain_unlocked (basesink, pad, obj);
+  result = gst_base_sink_chain_unlocked (basesink, pad, obj, is_list);
   GST_BASE_SINK_PREROLL_UNLOCK (basesink);
 
 done:
@@ -3299,7 +3332,7 @@
 
   basesink = GST_BASE_SINK (parent);
 
-  return gst_base_sink_chain_main (basesink, pad, buf);
+  return gst_base_sink_chain_main (basesink, pad, buf, FALSE);
 }
 
 static GstFlowReturn
@@ -3314,7 +3347,7 @@
   bclass = GST_BASE_SINK_GET_CLASS (basesink);
 
   if (G_LIKELY (bclass->render_list)) {
-    result = gst_base_sink_chain_main (basesink, pad, list);
+    result = gst_base_sink_chain_main (basesink, pad, list, TRUE);
   } else {
     guint i, len;
     GstBuffer *buffer;
@@ -3327,7 +3360,7 @@
     for (i = 0; i < len; i++) {
       buffer = gst_buffer_list_get (list, i);
       result = gst_base_sink_chain_main (basesink, pad,
-          gst_buffer_ref (buffer));
+          gst_buffer_ref (buffer), FALSE);
       if (result != GST_FLOW_OK)
         break;
     }
@@ -3672,7 +3705,7 @@
   basesink->segment.position = offset;
 
   GST_BASE_SINK_PREROLL_LOCK (basesink);
-  result = gst_base_sink_chain_unlocked (basesink, pad, buf);
+  result = gst_base_sink_chain_unlocked (basesink, pad, buf, FALSE);
   GST_BASE_SINK_PREROLL_UNLOCK (basesink);
   if (G_UNLIKELY (result != GST_FLOW_OK))
     goto paused;
diff --git a/libs/gst/base/gstbasesink.h b/libs/gst/base/gstbasesink.h
index f4ab7e6..bf7a41f 100644
--- a/libs/gst/base/gstbasesink.h
+++ b/libs/gst/base/gstbasesink.h
@@ -125,15 +125,19 @@
  *     unblock any blocked function ASAP
  * @unlock_stop: Clear the previous unlock request. Subclasses should clear
  *     any state they set during unlock(), such as clearing command queues.
+ * @query: perform a #GstQuery on the element. Since: 0.10.36
  * @event: Override this to handle events arriving on the sink pad
  * @wait_eos: Override this to implement custom logic to wait for the EOS time.
  *     subclasses should always first chain up to the default implementation.
- * @preroll: Called to present the preroll buffer if desired
+ * @prepare: Called to prepare the buffer for @render and @preroll. This
+ *     function is called before synchronisation is performed.
+ * @prepare_list: Called to prepare the buffer list for @render_list. This
+ *     function is called before synchronisation is performed.
+ * @preroll: Called to present the preroll buffer if desired.
  * @render: Called when a buffer should be presented or output, at the
  *     correct moment if the #GstBaseSink has been set to sync to the clock.
  * @render_list: Same as @render but used whith buffer lists instead of
  *     buffers. Since: 0.10.24
- * @query: perform a #GstQuery on the element. Since: 0.10.36
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At the minimum, the @render method should be overridden to
@@ -179,6 +183,10 @@
   /* wait for eos, subclasses should chain up to parent first */
   GstFlowReturn (*wait_eos)     (GstBaseSink *sink, GstEvent *event);
 
+  /* notify subclass of buffer or list before doing sync */
+  GstFlowReturn (*prepare)      (GstBaseSink *sink, GstBuffer *buffer);
+  GstFlowReturn (*prepare_list) (GstBaseSink *sink, GstBufferList *buffer_list);
+
   /* notify subclass of preroll buffer or real buffer */
   GstFlowReturn (*preroll)      (GstBaseSink *sink, GstBuffer *buffer);
   GstFlowReturn (*render)       (GstBaseSink *sink, GstBuffer *buffer);
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 7b8ec85..c5fad37 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -318,7 +318,7 @@
     GstQuery * query);
 
 static gboolean gst_base_src_set_flushing (GstBaseSrc * basesrc,
-    gboolean flushing, gboolean live_play, gboolean unlock, gboolean * playing);
+    gboolean flushing, gboolean live_play, gboolean * playing);
 
 static gboolean gst_base_src_start (GstBaseSrc * basesrc);
 static gboolean gst_base_src_stop (GstBaseSrc * basesrc);
@@ -1481,15 +1481,8 @@
  * when we reach the segment.stop we have to post a segment.done
  * instead of EOS when doing a segment seek.
  */
-/* FIXME (0.11), we have the unlock gboolean here because most current
- * implementations (fdsrc, -base/gst/tcp/, ...) unconditionally unlock, even when
- * the streaming thread isn't running, resulting in bogus unlocks later when it
- * starts. This is fixed by adding unlock_stop, but we should still avoid unlocking
- * unnecessarily for backwards compatibility. Ergo, the unlock variable stays
- * until 0.11
- */
 static gboolean
-gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock)
+gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event)
 {
   gboolean res = TRUE, tres;
   gdouble rate;
@@ -1548,7 +1541,7 @@
     gst_pad_pause_task (src->srcpad);
 
   /* unblock streaming thread. */
-  gst_base_src_set_flushing (src, TRUE, FALSE, unlock, &playing);
+  gst_base_src_set_flushing (src, TRUE, FALSE, &playing);
 
   /* grab streaming lock, this should eventually be possible, either
    * because the task is paused, our streaming thread stopped
@@ -1563,7 +1556,7 @@
     GST_DEBUG_OBJECT (src, "seek with seqnum %" G_GUINT32_FORMAT, seqnum);
   }
 
-  gst_base_src_set_flushing (src, FALSE, playing, unlock, NULL);
+  gst_base_src_set_flushing (src, FALSE, playing, NULL);
 
   /* If we configured the seeksegment above, don't overwrite it now. Otherwise
    * copy the current segment info into the temp segment that we can actually
@@ -1767,8 +1760,8 @@
       if (started) {
         GST_DEBUG_OBJECT (src, "performing seek");
         /* when we are running in push mode, we can execute the
-         * seek right now, we need to unlock. */
-        result = gst_base_src_perform_seek (src, event, TRUE);
+         * seek right now. */
+        result = gst_base_src_perform_seek (src, event);
       } else {
         GstEvent **event_p;
 
@@ -1863,15 +1856,15 @@
       if (!gst_base_src_seekable (src))
         goto not_seekable;
 
-      result = gst_base_src_perform_seek (src, event, TRUE);
+      result = gst_base_src_perform_seek (src, event);
       break;
     case GST_EVENT_FLUSH_START:
       /* cancel any blocking getrange, is normally called
        * when in pull mode. */
-      result = gst_base_src_set_flushing (src, TRUE, FALSE, TRUE, NULL);
+      result = gst_base_src_set_flushing (src, TRUE, FALSE, NULL);
       break;
     case GST_EVENT_FLUSH_STOP:
-      result = gst_base_src_set_flushing (src, FALSE, TRUE, TRUE, NULL);
+      result = gst_base_src_set_flushing (src, FALSE, TRUE, NULL);
       break;
     case GST_EVENT_QOS:
     {
@@ -2020,7 +2013,7 @@
   GstClockTime base_time;
   GstClock *clock;
   GstClockTime now = GST_CLOCK_TIME_NONE, timestamp;
-  gboolean do_timestamp, first, pseudo_live;
+  gboolean do_timestamp, first, pseudo_live, is_live;
 
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
 
@@ -2035,8 +2028,9 @@
    * latency. */
   GST_OBJECT_LOCK (basesrc);
 
+  is_live = basesrc->is_live;
   /* if we are asked to sync against the clock we are a pseudo live element */
-  pseudo_live = (start != -1 && basesrc->is_live);
+  pseudo_live = (start != -1 && is_live);
   /* check for the first buffer */
   first = (basesrc->priv->latency == -1);
 
@@ -2064,17 +2058,20 @@
     }
   } else if (first) {
     GST_DEBUG_OBJECT (basesrc, "no latency needed, live %d, sync %d",
-        basesrc->is_live, start != -1);
+        is_live, start != -1);
     basesrc->priv->latency = 0;
   }
 
   /* get clock, if no clock, we can't sync or do timestamps */
   if ((clock = GST_ELEMENT_CLOCK (basesrc)) == NULL)
     goto no_clock;
+  else
+    gst_object_ref (clock);
 
   base_time = GST_ELEMENT_CAST (basesrc)->base_time;
 
   do_timestamp = basesrc->priv->do_timestamp;
+  GST_OBJECT_UNLOCK (basesrc);
 
   /* first buffer, calculate the timestamp offset */
   if (first) {
@@ -2132,7 +2129,7 @@
   if (!GST_CLOCK_TIME_IS_VALID (start))
     goto no_sync;
 
-  if (basesrc->is_live && GST_CLOCK_TIME_IS_VALID (timestamp)) {
+  if (is_live && GST_CLOCK_TIME_IS_VALID (timestamp)) {
     /* for pseudo live sources, add our ts_offset to the timestamp */
     GST_BUFFER_TIMESTAMP (buffer) += basesrc->priv->ts_offset;
     start += basesrc->priv->ts_offset;
@@ -2142,10 +2139,11 @@
       "waiting for clock, base time %" GST_TIME_FORMAT
       ", stream_start %" GST_TIME_FORMAT,
       GST_TIME_ARGS (base_time), GST_TIME_ARGS (start));
-  GST_OBJECT_UNLOCK (basesrc);
 
   result = gst_base_src_wait (basesrc, clock, start + base_time);
 
+  gst_object_unref (clock);
+
   GST_LOG_OBJECT (basesrc, "clock entry done: %d", result);
 
   return result;
@@ -2160,7 +2158,7 @@
 no_sync:
   {
     GST_DEBUG_OBJECT (basesrc, "no sync needed");
-    GST_OBJECT_UNLOCK (basesrc);
+    gst_object_unref (clock);
     return GST_CLOCK_OK;
   }
 }
@@ -3130,7 +3128,7 @@
 
   /* stop flushing now but for live sources, still block in the LIVE lock when
    * we are not yet PLAYING */
-  gst_base_src_set_flushing (basesrc, FALSE, FALSE, FALSE, NULL);
+  gst_base_src_set_flushing (basesrc, FALSE, FALSE, NULL);
 
   gst_pad_mark_reconfigure (GST_BASE_SRC_PAD (basesrc));
 
@@ -3138,6 +3136,9 @@
   mode = GST_PAD_MODE (basesrc->srcpad);
   GST_OBJECT_UNLOCK (basesrc->srcpad);
 
+  /* take the stream lock here, we only want to let the task run when we have
+   * set the STARTED flag */
+  GST_PAD_STREAM_LOCK (basesrc->srcpad);
   if (mode == GST_PAD_MODE_PUSH) {
     /* do initial seek, which will start the task */
     GST_OBJECT_LOCK (basesrc);
@@ -3145,10 +3146,8 @@
     basesrc->pending_seek = NULL;
     GST_OBJECT_UNLOCK (basesrc);
 
-    /* no need to unlock anything, the task is certainly
-     * not running here. The perform seek code will start the task when
-     * finished. */
-    if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event, FALSE)))
+    /* The perform seek code will start the task when finished. */
+    if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event)))
       goto seek_failed;
 
     if (event)
@@ -3166,12 +3165,15 @@
   GST_LIVE_SIGNAL (basesrc);
   GST_LIVE_UNLOCK (basesrc);
 
+  GST_PAD_STREAM_UNLOCK (basesrc->srcpad);
+
   return;
 
 seek_failed:
   {
+    GST_PAD_STREAM_UNLOCK (basesrc->srcpad);
     GST_ERROR_OBJECT (basesrc, "Failed to perform initial seek");
-    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+    gst_base_src_set_flushing (basesrc, TRUE, FALSE, NULL);
     if (event)
       gst_event_unref (event);
     ret = GST_FLOW_ERROR;
@@ -3179,7 +3181,8 @@
   }
 no_get_range:
   {
-    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+    GST_PAD_STREAM_UNLOCK (basesrc->srcpad);
+    gst_base_src_set_flushing (basesrc, TRUE, FALSE, NULL);
     GST_ERROR_OBJECT (basesrc, "Cannot operate in pull mode, stopping");
     ret = GST_FLOW_ERROR;
     goto error;
@@ -3241,7 +3244,7 @@
   GST_DEBUG_OBJECT (basesrc, "stopping source");
 
   /* flush all */
-  gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+  gst_base_src_set_flushing (basesrc, TRUE, FALSE, NULL);
   /* stop the task */
   gst_pad_stop_task (basesrc->srcpad);
 
@@ -3275,13 +3278,13 @@
  */
 static gboolean
 gst_base_src_set_flushing (GstBaseSrc * basesrc,
-    gboolean flushing, gboolean live_play, gboolean unlock, gboolean * playing)
+    gboolean flushing, gboolean live_play, gboolean * playing)
 {
   GstBaseSrcClass *bclass;
 
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
 
-  if (flushing && unlock) {
+  if (flushing) {
     gst_base_src_activate_pool (basesrc, FALSE);
     /* unlock any subclasses, we need to do this before grabbing the
      * LIVE_LOCK since we hold this lock before going into ::create. We pass an
@@ -3316,18 +3319,16 @@
 
     gst_base_src_activate_pool (basesrc, TRUE);
 
-    /* When unlocking drop all delayed events */
-    if (unlock) {
-      GST_OBJECT_LOCK (basesrc);
-      if (basesrc->priv->pending_events) {
-        g_list_foreach (basesrc->priv->pending_events, (GFunc) gst_event_unref,
-            NULL);
-        g_list_free (basesrc->priv->pending_events);
-        basesrc->priv->pending_events = NULL;
-        g_atomic_int_set (&basesrc->priv->have_events, FALSE);
-      }
-      GST_OBJECT_UNLOCK (basesrc);
+    /* Drop all delayed events */
+    GST_OBJECT_LOCK (basesrc);
+    if (basesrc->priv->pending_events) {
+      g_list_foreach (basesrc->priv->pending_events, (GFunc) gst_event_unref,
+          NULL);
+      g_list_free (basesrc->priv->pending_events);
+      basesrc->priv->pending_events = NULL;
+      g_atomic_int_set (&basesrc->priv->have_events, FALSE);
     }
+    GST_OBJECT_UNLOCK (basesrc);
   }
   GST_LIVE_SIGNAL (basesrc);
   GST_LIVE_UNLOCK (basesrc);
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c
index cdb267a..23412b7 100644
--- a/libs/gst/base/gsttypefindhelper.c
+++ b/libs/gst/base/gsttypefindhelper.c
@@ -43,7 +43,8 @@
 /* ********************** typefinding in pull mode ************************ */
 
 static void
-helper_find_suggest (gpointer data, guint probability, GstCaps * caps);
+helper_find_suggest (gpointer data, GstTypeFindProbability probability,
+    GstCaps * caps);
 
 typedef struct
 {
diff --git a/libs/gst/check/Makefile.in b/libs/gst/check/Makefile.in
index 617f5a6..5c57700 100644
--- a/libs/gst/check/Makefile.in
+++ b/libs/gst/check/Makefile.in
@@ -53,6 +53,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+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) \
@@ -331,6 +332,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -483,7 +488,11 @@
 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@
diff --git a/libs/gst/check/gstcheck.c b/libs/gst/check/gstcheck.c
index 745b68c..98934f9 100644
--- a/libs/gst/check/gstcheck.c
+++ b/libs/gst/check/gstcheck.c
@@ -130,7 +130,9 @@
       gst_check_log_critical_func, NULL);
   g_log_set_handler ("GLib-GObject", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
       gst_check_log_critical_func, NULL);
-  g_log_set_handler ("Gst-Phonon", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
+  g_log_set_handler ("GLib-GIO", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
+      gst_check_log_critical_func, NULL);
+  g_log_set_handler ("GLib", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
       gst_check_log_critical_func, NULL);
 
   print_plugins ();
diff --git a/libs/gst/check/libcheck/Makefile.in b/libs/gst/check/libcheck/Makefile.in
index 085986e..a02142b 100644
--- a/libs/gst/check/libcheck/Makefile.in
+++ b/libs/gst/check/libcheck/Makefile.in
@@ -52,6 +52,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 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
@@ -264,6 +265,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -416,7 +421,11 @@
 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@
diff --git a/libs/gst/controller/Makefile.in b/libs/gst/controller/Makefile.in
index aa3cbda..897da92 100644
--- a/libs/gst/controller/Makefile.in
+++ b/libs/gst/controller/Makefile.in
@@ -53,6 +53,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+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) \
@@ -296,6 +297,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -448,7 +453,11 @@
 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@
diff --git a/libs/gst/helpers/Makefile.in b/libs/gst/helpers/Makefile.in
index c12b276..7a9fc3f 100644
--- a/libs/gst/helpers/Makefile.in
+++ b/libs/gst/helpers/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 helpers_PROGRAMS = gst-plugin-scanner$(EXEEXT)
 subdir = libs/gst/helpers
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -255,6 +256,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -407,7 +412,11 @@
 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@
diff --git a/libs/gst/net/Makefile.in b/libs/gst/net/Makefile.in
index c4b49a1..770630b 100644
--- a/libs/gst/net/Makefile.in
+++ b/libs/gst/net/Makefile.in
@@ -53,6 +53,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+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) \
@@ -294,6 +295,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -446,7 +451,11 @@
 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@
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 138013b..309850d 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = m4
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@
 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@
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index f97eaf1..dd75868 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = pkgconfig
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/gstreamer-base-uninstalled.pc.in \
@@ -261,6 +262,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -413,7 +418,11 @@
 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@
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index 4d019da..099c0e4 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = plugins
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -256,6 +257,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -408,7 +413,11 @@
 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@
diff --git a/plugins/elements/Makefile.in b/plugins/elements/Makefile.in
index 15c6d3d..56a2e0c 100644
--- a/plugins/elements/Makefile.in
+++ b/plugins/elements/Makefile.in
@@ -52,6 +52,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = plugins/elements
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -301,6 +302,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -453,7 +458,11 @@
 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@
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index c9b2c45..89eb17b 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -357,7 +357,6 @@
 gst_fake_src_init (GstFakeSrc * fakesrc)
 {
   fakesrc->output = FAKE_SRC_FIRST_LAST_LOOP;
-  fakesrc->buffer_count = 0;
   fakesrc->silent = DEFAULT_SILENT;
   fakesrc->signal_handoffs = DEFAULT_SIGNAL_HANDOFFS;
   fakesrc->dump = DEFAULT_DUMP;
@@ -781,7 +780,7 @@
   src = GST_FAKE_SRC (basesrc);
 
   buf = gst_fake_src_create_buffer (src, &size);
-  GST_BUFFER_OFFSET (buf) = src->buffer_count++;
+  GST_BUFFER_OFFSET (buf) = offset;
 
   if (src->datarate > 0) {
     time = (src->bytes_sent * GST_SECOND) / src->datarate;
@@ -885,7 +884,6 @@
 
   src = GST_FAKE_SRC (basesrc);
 
-  src->buffer_count = 0;
   src->pattern_byte = 0x00;
   src->bytes_sent = 0;
 
diff --git a/plugins/elements/gstfakesrc.h b/plugins/elements/gstfakesrc.h
index 00675c2..965fcb0 100644
--- a/plugins/elements/gstfakesrc.h
+++ b/plugins/elements/gstfakesrc.h
@@ -140,9 +140,6 @@
   gboolean	 sync;
   GstClock	*clock;
 
-  gint		 num_buffers;
-  gint		 rt_num_buffers; /* we are going to change this at runtime */
-  gint64	 buffer_count;
   gboolean	 silent;
   gboolean	 signal_handoffs;
   gboolean	 dump;
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index 8536f4a..a0672d1 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -461,7 +461,7 @@
   }
 }
 
-/* open the file and mmap it, necessary to go to READY state */
+/* open the file, necessary to go to READY state */
 static gboolean
 gst_file_src_start (GstBaseSrc * basesrc)
 {
@@ -500,8 +500,8 @@
     off_t res = lseek (src->fd, 0, SEEK_END);
 
     if (res < 0) {
-      GST_LOG_OBJECT (src, "disabling seeking, not in mmap mode and lseek "
-          "failed: %s", g_strerror (errno));
+      GST_LOG_OBJECT (src, "disabling seeking, lseek failed: %s",
+          g_strerror (errno));
       src->seekable = FALSE;
     } else {
       src->seekable = TRUE;
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index 9a9f455..a15a9e6 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -67,6 +67,7 @@
   GstPad parent;
 
   GstSegment segment;
+  gboolean got_eos;
 };
 
 struct _GstFunnelPadClass
@@ -85,6 +86,7 @@
 gst_funnel_pad_reset (GstFunnelPad * pad)
 {
   gst_segment_init (&pad->segment, GST_FORMAT_UNDEFINED);
+  pad->got_eos = FALSE;
 }
 
 static void
@@ -203,16 +205,48 @@
   return sinkpad;
 }
 
+static gboolean
+gst_funnel_all_sinkpads_eos_unlocked (GstFunnel * funnel)
+{
+  GstElement *element = GST_ELEMENT_CAST (funnel);
+  GList *item;
+
+  if (element->numsinkpads == 0)
+    return FALSE;
+
+  for (item = element->sinkpads; item != NULL; item = g_list_next (item)) {
+    GstFunnelPad *sinkpad = item->data;
+
+    if (!sinkpad->got_eos)
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
 static void
 gst_funnel_release_pad (GstElement * element, GstPad * pad)
 {
   GstFunnel *funnel = GST_FUNNEL (element);
+  GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
+  gboolean send_eos = FALSE;
 
   GST_DEBUG_OBJECT (funnel, "releasing pad");
 
   gst_pad_set_active (pad, FALSE);
 
   gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad);
+
+  GST_OBJECT_LOCK (funnel);
+  if (!fpad->got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
+    GST_DEBUG_OBJECT (funnel, "Pad removed. All others are EOS. Sending EOS");
+    send_eos = TRUE;
+  }
+  GST_OBJECT_UNLOCK (funnel);
+
+  if (send_eos)
+    if (!gst_pad_push_event (funnel->srcpad, gst_event_new_eos ()))
+      GST_WARNING_OBJECT (funnel, "Failure pushing EOS");
 }
 
 static GstFlowReturn
@@ -230,6 +264,15 @@
   GST_DEBUG_OBJECT (funnel, "received buffer %p", buffer);
 
   GST_OBJECT_LOCK (funnel);
+
+  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 (fpad->segment.format == GST_FORMAT_UNDEFINED) {
     GST_WARNING_OBJECT (funnel, "Got buffer without segment,"
         " setting segment [0,inf[");
@@ -267,6 +310,7 @@
   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;
     }
   }
@@ -276,9 +320,7 @@
 
   GST_LOG_OBJECT (funnel, "handled buffer %s", gst_flow_get_name (res));
 
-#if 0
 out:
-#endif
 
   return res;
 }
@@ -306,6 +348,22 @@
       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;
     }
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index eb6fba5..9133a8c 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -61,9 +61,47 @@
 
 #include "gst/glib-compat-private.h"
 
+#define DEBUG_CACHED_BUFFERS 0
+
 GST_DEBUG_CATEGORY_STATIC (input_selector_debug);
 #define GST_CAT_DEFAULT input_selector_debug
 
+#define GST_TYPE_INPUT_SELECTOR_SYNC_MODE (gst_input_selector_sync_mode_get_type())
+static GType
+gst_input_selector_sync_mode_get_type (void)
+{
+  static GType type = 0;
+  static const GEnumValue data[] = {
+    {GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT,
+          "Sync using the current active segment",
+        "active-segment"},
+    {GST_INPUT_SELECTOR_SYNC_MODE_CLOCK, "Sync using the clock", "clock"},
+    {0, NULL, NULL},
+  };
+
+  if (!type) {
+    type = g_enum_register_static ("GstInputSelectorSyncMode", data);
+  }
+  return type;
+}
+
+#if GLIB_CHECK_VERSION(2, 26, 0)
+#define NOTIFY_MUTEX_LOCK()
+#define NOTIFY_MUTEX_UNLOCK()
+#else
+static GStaticRecMutex notify_mutex = G_STATIC_REC_MUTEX_INIT;
+#define NOTIFY_MUTEX_LOCK() g_static_rec_mutex_lock (&notify_mutex)
+#define NOTIFY_MUTEX_UNLOCK() g_static_rec_mutex_unlock (&notify_mutex)
+#endif
+
+#define GST_INPUT_SELECTOR_GET_LOCK(sel) (&((GstInputSelector*)(sel))->lock)
+#define GST_INPUT_SELECTOR_GET_COND(sel) (&((GstInputSelector*)(sel))->cond)
+#define GST_INPUT_SELECTOR_LOCK(sel) (g_mutex_lock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_UNLOCK(sel) (g_mutex_unlock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_WAIT(sel) (g_cond_wait (GST_INPUT_SELECTOR_GET_COND(sel), \
+			GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
+
 static GstStaticPadTemplate gst_input_selector_sink_factory =
 GST_STATIC_PAD_TEMPLATE ("sink_%u",
     GST_PAD_SINK,
@@ -81,11 +119,14 @@
   PROP_0,
   PROP_N_PADS,
   PROP_ACTIVE_PAD,
-  PROP_SYNC_STREAMS
+  PROP_SYNC_STREAMS,
+  PROP_SYNC_MODE,
+  PROP_CACHE_BUFFERS
 };
 
 #define DEFAULT_SYNC_STREAMS TRUE
-
+#define DEFAULT_SYNC_MODE GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT
+#define DEFAULT_CACHE_BUFFERS FALSE
 #define DEFAULT_PAD_ALWAYS_OK TRUE
 
 enum
@@ -106,6 +147,8 @@
 };
 static guint gst_input_selector_signals[LAST_SIGNAL] = { 0 };
 
+static void gst_input_selector_active_pad_changed (GstInputSelector * sel,
+    GParamSpec * pspec, gpointer user_data);
 static inline gboolean gst_input_selector_is_active_sinkpad (GstInputSelector *
     sel, GstPad * pad);
 static GstPad *gst_input_selector_activate_sinkpad (GstInputSelector * sel,
@@ -128,6 +171,7 @@
 
 typedef struct _GstSelectorPad GstSelectorPad;
 typedef struct _GstSelectorPadClass GstSelectorPadClass;
+typedef struct _GstSelectorPadCachedBuffer GstSelectorPadCachedBuffer;
 
 struct _GstSelectorPad
 {
@@ -147,6 +191,15 @@
   guint32 segment_seqnum;       /* sequence number of the current segment */
 
   gboolean events_pending;      /* TRUE if sticky events need to be updated */
+
+  gboolean sending_cached_buffers;
+  GQueue *cached_buffers;
+};
+
+struct _GstSelectorPadCachedBuffer
+{
+  GstBuffer *buffer;
+  GstSegment segment;
 };
 
 struct _GstSelectorPadClass
@@ -171,6 +224,9 @@
     GstObject * parent);
 static GstFlowReturn gst_selector_pad_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buf);
+static void gst_selector_pad_cache_buffer (GstSelectorPad * selpad,
+    GstBuffer * buffer);
+static void gst_selector_pad_free_cached_buffers (GstSelectorPad * selpad);
 
 G_DEFINE_TYPE (GstSelectorPad, gst_selector_pad, GST_TYPE_PAD);
 
@@ -220,7 +276,8 @@
   pad = GST_SELECTOR_PAD_CAST (object);
 
   if (pad->tags)
-    gst_tag_list_free (pad->tags);
+    gst_tag_list_unref (pad->tags);
+  gst_selector_pad_free_cached_buffers (pad);
 
   G_OBJECT_CLASS (gst_selector_pad_parent_class)->finalize (object);
 }
@@ -293,12 +350,13 @@
   }
   GST_OBJECT_UNLOCK (pad);
 
-  GST_DEBUG_OBJECT (pad, "running time: %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (ret));
+  GST_DEBUG_OBJECT (pad, "running time: %" GST_TIME_FORMAT
+      " segment: %" GST_SEGMENT_FORMAT, GST_TIME_ARGS (ret), &pad->segment);
 
   return ret;
 }
 
+/* must be called with the SELECTOR_LOCK */
 static void
 gst_selector_pad_reset (GstSelectorPad * pad)
 {
@@ -312,9 +370,61 @@
   pad->flushing = FALSE;
   pad->position = GST_CLOCK_TIME_NONE;
   gst_segment_init (&pad->segment, GST_FORMAT_UNDEFINED);
+  pad->sending_cached_buffers = FALSE;
+  gst_selector_pad_free_cached_buffers (pad);
   GST_OBJECT_UNLOCK (pad);
 }
 
+static GstSelectorPadCachedBuffer *
+gst_selector_pad_new_cached_buffer (GstSelectorPad * selpad, GstBuffer * buffer)
+{
+  GstSelectorPadCachedBuffer *cached_buffer =
+      g_slice_new (GstSelectorPadCachedBuffer);
+  cached_buffer->buffer = buffer;
+  cached_buffer->segment = selpad->segment;
+  return cached_buffer;
+}
+
+static void
+gst_selector_pad_free_cached_buffer (GstSelectorPadCachedBuffer * cached_buffer)
+{
+  gst_buffer_unref (cached_buffer->buffer);
+  g_slice_free (GstSelectorPadCachedBuffer, cached_buffer);
+}
+
+/* must be called with the SELECTOR_LOCK */
+static void
+gst_selector_pad_cache_buffer (GstSelectorPad * selpad, GstBuffer * buffer)
+{
+  if (selpad->segment.format != GST_FORMAT_TIME) {
+    GST_DEBUG_OBJECT (selpad, "Buffer %p with segment not in time format, "
+        "not caching", buffer);
+    return;
+  }
+
+  GST_DEBUG_OBJECT (selpad, "Caching buffer %p", buffer);
+  if (!selpad->cached_buffers)
+    selpad->cached_buffers = g_queue_new ();
+  g_queue_push_tail (selpad->cached_buffers,
+      gst_selector_pad_new_cached_buffer (selpad, buffer));
+}
+
+/* must be called with the SELECTOR_LOCK */
+static void
+gst_selector_pad_free_cached_buffers (GstSelectorPad * selpad)
+{
+  GstSelectorPadCachedBuffer *cached_buffer;
+
+  if (!selpad->cached_buffers)
+    return;
+
+  GST_DEBUG_OBJECT (selpad, "Freeing cached buffers");
+  while ((cached_buffer = g_queue_pop_head (selpad->cached_buffers)))
+    gst_selector_pad_free_cached_buffer (cached_buffer);
+  g_queue_free (selpad->cached_buffers);
+  selpad->cached_buffers = NULL;
+}
+
 /* strictly get the linked pad from the sinkpad. If the pad is active we return
  * the srcpad else we return NULL */
 static GstIterator *
@@ -351,36 +461,34 @@
 
   sel = GST_INPUT_SELECTOR (parent);
   selpad = GST_SELECTOR_PAD_CAST (pad);
+  GST_DEBUG_OBJECT (selpad, "received event %" GST_PTR_FORMAT, event);
 
   GST_INPUT_SELECTOR_LOCK (sel);
   prev_active_sinkpad = sel->active_sinkpad;
   active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
-
-  /* only forward if we are dealing with the active sinkpad */
-  forward = (pad == active_sinkpad);
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
   if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) {
     g_object_notify (G_OBJECT (sel), "active-pad");
   }
 
+  GST_INPUT_SELECTOR_LOCK (sel);
+  active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+
+  /* only forward if we are dealing with the active sinkpad */
+  forward = (pad == active_sinkpad);
+
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_START:
       /* Unblock the pad if it's waiting */
-      GST_INPUT_SELECTOR_LOCK (sel);
       selpad->flushing = TRUE;
       GST_INPUT_SELECTOR_BROADCAST (sel);
-      GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
     case GST_EVENT_FLUSH_STOP:
-      GST_INPUT_SELECTOR_LOCK (sel);
       gst_selector_pad_reset (selpad);
-      GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
     case GST_EVENT_SEGMENT:
     {
-      GST_INPUT_SELECTOR_LOCK (sel);
-      GST_OBJECT_LOCK (selpad);
       gst_event_copy_segment (event, &selpad->segment);
       selpad->segment_seqnum = gst_event_get_seqnum (event);
 
@@ -400,9 +508,6 @@
       }
       GST_DEBUG_OBJECT (pad, "configured SEGMENT %" GST_SEGMENT_FORMAT,
           &selpad->segment);
-
-      GST_OBJECT_UNLOCK (selpad);
-      GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
     }
     case GST_EVENT_TAG:
@@ -411,15 +516,13 @@
 
       gst_event_parse_tag (event, &tags);
 
-      GST_OBJECT_LOCK (selpad);
       oldtags = selpad->tags;
 
       newtags = gst_tag_list_merge (oldtags, tags, GST_TAG_MERGE_REPLACE);
       selpad->tags = newtags;
       if (oldtags)
-        gst_tag_list_free (oldtags);
+        gst_tag_list_unref (oldtags);
       GST_DEBUG_OBJECT (pad, "received tags %" GST_PTR_FORMAT, newtags);
-      GST_OBJECT_UNLOCK (selpad);
 
       g_object_notify (G_OBJECT (selpad), "tags");
       break;
@@ -430,7 +533,7 @@
       if (forward) {
         selpad->eos_sent = TRUE;
       } else {
-        GstSelectorPad *tmp;
+        GstSelectorPad *active_selpad;
 
         /* If the active sinkpad is in EOS state but EOS
          * was not sent downstream this means that the pad
@@ -438,18 +541,16 @@
          * the previously active pad got EOS after it was
          * active
          */
-        GST_INPUT_SELECTOR_LOCK (sel);
-        active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
-        tmp = GST_SELECTOR_PAD (active_sinkpad);
-        forward = (tmp->eos && !tmp->eos_sent);
-        tmp->eos_sent = TRUE;
-        GST_INPUT_SELECTOR_UNLOCK (sel);
+        active_selpad = GST_SELECTOR_PAD (active_sinkpad);
+        forward = (active_selpad->eos && !active_selpad->eos_sent);
+        active_selpad->eos_sent = TRUE;
       }
       GST_DEBUG_OBJECT (pad, "received EOS");
       break;
     default:
       break;
   }
+  GST_INPUT_SELECTOR_UNLOCK (sel);
   if (forward) {
     GST_DEBUG_OBJECT (pad, "forwarding event");
     res = gst_pad_push_event (sel->srcpad, event);
@@ -495,103 +596,121 @@
   return self->flushing;
 }
 
-/* must be called with the SELECTOR_LOCK, will block until the running time
+/* must be called without the SELECTOR_LOCK, will wait until the running time
  * of the active pad is after this pad or return TRUE when flushing */
 static gboolean
 gst_input_selector_wait_running_time (GstInputSelector * sel,
-    GstSelectorPad * pad, GstBuffer * buf)
+    GstSelectorPad * selpad, GstBuffer * buf)
 {
-  GstPad *active_sinkpad;
-  GstSelectorPad *active_selpad;
-  GstSegment *seg, *active_seg;
-  GstClockTime running_time, active_running_time = GST_CLOCK_TIME_NONE;
+  GstSegment *seg;
 
-  seg = &pad->segment;
-
-  active_sinkpad =
-      gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (pad));
-  active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
-  active_seg = &active_selpad->segment;
-
-  /* We can only sync if the segments are in time format or
-   * if the active pad had no newsegment event yet */
-  if (seg->format != GST_FORMAT_TIME ||
-      (active_seg->format != GST_FORMAT_TIME
-          && active_seg->format != GST_FORMAT_UNDEFINED))
-    return FALSE;
+  GST_DEBUG_OBJECT (selpad, "entering wait for buffer %p", buf);
 
   /* If we have no valid timestamp we can't sync this buffer */
-  if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf))
+  if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+    GST_DEBUG_OBJECT (selpad, "leaving wait for buffer with "
+        "invalid timestamp");
     return FALSE;
+  }
 
-  running_time = GST_BUFFER_TIMESTAMP (buf);
-  /* If possible try to get the running time at the end of the buffer */
-  if (GST_BUFFER_DURATION_IS_VALID (buf))
-    running_time += GST_BUFFER_DURATION (buf);
-  if (running_time > seg->stop)
-    running_time = seg->stop;
-  running_time =
-      gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
-  /* If this is outside the segment don't sync */
-  if (running_time == -1)
-    return FALSE;
-
-  /* Get active pad's running time, if no configured segment yet keep at -1 */
-  if (active_seg->format == GST_FORMAT_TIME)
-    active_running_time =
-        gst_segment_to_running_time (active_seg, GST_FORMAT_TIME,
-        active_selpad->position);
+  seg = &selpad->segment;
 
   /* Wait until
    *   a) this is the active pad
    *   b) the pad or the selector is flushing
    *   c) the selector is not blocked
-   *   d) the active pad has no running time or the active
-   *      pad's running time is before this running time
-   *   e) the active pad has a non-time segment
-   *   f) the active pad changed and has not pushed anything
+   *   d) the buffer running time is before the current running time
+   *      (either active-seg or clock, depending on sync-mode)
    */
-  while (pad != active_selpad && !sel->flushing && !pad->flushing
-      && active_selpad->pushed && (sel->blocked || active_running_time == -1
-          || running_time >= active_running_time)) {
-    if (!sel->blocked)
-      GST_DEBUG_OBJECT (pad,
-          "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
-          GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
-          GST_TIME_ARGS (active_running_time));
 
-    GST_INPUT_SELECTOR_WAIT (sel);
+  GST_INPUT_SELECTOR_LOCK (sel);
+  while (TRUE) {
+    GstPad *active_sinkpad;
+    GstSelectorPad *active_selpad;
+    GstClock *clock;
+    gint64 cur_running_time;
+    GstClockTime running_time;
 
-    /* Get new active pad, it might have changed */
     active_sinkpad =
-        gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (pad));
+        gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad));
     active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
-    active_seg = &active_selpad->segment;
 
-    /* If the active segment is configured but not to time format
-     * we can't do any syncing at all */
-    if (active_seg->format != GST_FORMAT_TIME
-        && active_seg->format != GST_FORMAT_UNDEFINED)
+    if (seg->format != GST_FORMAT_TIME) {
+      GST_INPUT_SELECTOR_UNLOCK (sel);
+      return FALSE;
+    }
+
+    running_time = GST_BUFFER_TIMESTAMP (buf);
+    /* If possible try to get the running time at the end of the buffer */
+    if (GST_BUFFER_DURATION_IS_VALID (buf))
+      running_time += GST_BUFFER_DURATION (buf);
+    /* Only use the segment to convert to running time if the segment is
+     * in TIME format, otherwise do our best to try to sync */
+    if (GST_CLOCK_TIME_IS_VALID (seg->stop)) {
+      if (running_time > seg->stop) {
+        running_time = seg->stop;
+      }
+    }
+    running_time =
+        gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
+    /* If this is outside the segment don't sync */
+    if (running_time == -1) {
+      GST_INPUT_SELECTOR_UNLOCK (sel);
+      return FALSE;
+    }
+
+    cur_running_time = GST_CLOCK_TIME_NONE;
+    if (sel->sync_mode == GST_INPUT_SELECTOR_SYNC_MODE_CLOCK) {
+      clock = gst_element_get_clock (GST_ELEMENT_CAST (sel));
+      if (clock) {
+        GstClockTime base_time;
+
+        cur_running_time = gst_clock_get_time (clock);
+        base_time = gst_element_get_base_time (GST_ELEMENT_CAST (sel));
+        if (base_time <= cur_running_time)
+          cur_running_time -= base_time;
+        else
+          cur_running_time = 0;
+      }
+    } else {
+      GstSegment *active_seg;
+
+      active_seg = &active_selpad->segment;
+
+      /* If the active segment is configured but not to time format
+       * we can't do any syncing at all */
+      if (active_seg->format != GST_FORMAT_TIME
+          && active_seg->format != GST_FORMAT_UNDEFINED) {
+        GST_INPUT_SELECTOR_UNLOCK (sel);
+        return FALSE;
+      }
+
+      /* Get active pad's running time, if no configured segment yet keep at -1 */
+      if (active_seg->format == GST_FORMAT_TIME)
+        cur_running_time = gst_segment_to_running_time (active_seg,
+            GST_FORMAT_TIME, active_seg->position);
+    }
+
+    if (selpad != active_selpad && !sel->flushing && !selpad->flushing &&
+        (sel->cache_buffers || active_selpad->pushed) &&
+        (sel->blocked || cur_running_time == -1
+            || running_time >= cur_running_time)) {
+      if (!sel->blocked) {
+        GST_DEBUG_OBJECT (selpad,
+            "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
+            GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
+            GST_TIME_ARGS (cur_running_time));
+      }
+
+      GST_INPUT_SELECTOR_WAIT (sel);
+    } else {
+      GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
-
-    /* Get the new active pad running time */
-    if (active_seg->format == GST_FORMAT_TIME)
-      active_running_time =
-          gst_segment_to_running_time (active_seg, GST_FORMAT_TIME,
-          active_selpad->position);
-    else
-      active_running_time = -1;
-
-    if (!sel->blocked)
-      GST_DEBUG_OBJECT (pad,
-          "Waited for active streams to advance. %" GST_TIME_FORMAT " >= %"
-          GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
-          GST_TIME_ARGS (active_running_time));
-
+    }
   }
 
   /* Return TRUE if the selector or the pad is flushing */
-  return (sel->flushing || pad->flushing);
+  return (sel->flushing || selpad->flushing);
 }
 
 static gboolean
@@ -614,6 +733,164 @@
   return TRUE;
 }
 
+#if DEBUG_CACHED_BUFFERS
+static void
+gst_input_selector_debug_cached_buffers (GstInputSelector * sel)
+{
+  GList *walk;
+
+  for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
+    GstSelectorPad *selpad;
+    GString *timestamps;
+    gchar *str;
+    int i;
+
+    selpad = GST_SELECTOR_PAD_CAST (walk->data);
+    if (!selpad->cached_buffers) {
+      GST_DEBUG_OBJECT (selpad, "Cached buffers timestamps: <none>");
+      continue;
+    }
+
+    timestamps = g_string_new ("Cached buffers timestamps:");
+    for (i = 0; i < selpad->cached_buffers->length; ++i) {
+      GstSelectorPadCachedBuffer *cached_buffer;
+
+      cached_buffer = g_queue_peek_nth (selpad->cached_buffers, i);
+      g_string_append_printf (timestamps, " %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (cached_buffer->buffer)));
+    }
+    str = g_string_free (timestamps, FALSE);
+    GST_DEBUG_OBJECT (selpad, str);
+    g_free (str);
+  }
+}
+#endif
+
+/* must be called with the SELECTOR_LOCK */
+static void
+gst_input_selector_cleanup_old_cached_buffers (GstInputSelector * sel,
+    GstPad * pad)
+{
+  GstClock *clock;
+  gint64 cur_running_time;
+  GList *walk;
+
+  cur_running_time = GST_CLOCK_TIME_NONE;
+  if (sel->sync_mode == GST_INPUT_SELECTOR_SYNC_MODE_CLOCK) {
+    clock = gst_element_get_clock (GST_ELEMENT_CAST (sel));
+    if (clock) {
+      GstClockTime base_time;
+
+      cur_running_time = gst_clock_get_time (clock);
+      base_time = gst_element_get_base_time (GST_ELEMENT_CAST (sel));
+      if (base_time <= cur_running_time)
+        cur_running_time -= base_time;
+      else
+        cur_running_time = 0;
+    }
+  } else {
+    GstPad *active_sinkpad;
+    GstSelectorPad *active_selpad;
+    GstSegment *active_seg;
+
+    active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+    active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
+    active_seg = &active_selpad->segment;
+
+    /* Get active pad's running time, if no configured segment yet keep at -1 */
+    if (active_seg->format == GST_FORMAT_TIME)
+      cur_running_time = gst_segment_to_running_time (active_seg,
+          GST_FORMAT_TIME, active_seg->position);
+  }
+
+  if (!GST_CLOCK_TIME_IS_VALID (cur_running_time))
+    return;
+
+  GST_DEBUG_OBJECT (sel, "Cleaning up old cached buffers");
+  for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
+    GstSelectorPad *selpad;
+    GstSegment *seg;
+    GstSelectorPadCachedBuffer *cached_buffer;
+    GSList *maybe_remove;
+    guint queue_position;
+
+    selpad = GST_SELECTOR_PAD_CAST (walk->data);
+    if (!selpad->cached_buffers)
+      continue;
+
+    seg = &selpad->segment;
+
+    maybe_remove = NULL;
+    queue_position = 0;
+    while ((cached_buffer = g_queue_peek_nth (selpad->cached_buffers,
+                queue_position))) {
+      GstBuffer *buffer = cached_buffer->buffer;
+      GstClockTime running_time;
+      GSList *l;
+
+      /* If we have no valid timestamp we can't sync this buffer */
+      if (!GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) {
+        maybe_remove = g_slist_append (maybe_remove, cached_buffer);
+        queue_position = g_slist_length (maybe_remove);
+        continue;
+      }
+
+      /* the buffer is still valid if its duration is valid and the
+       * timestamp + duration is >= time, or if its duration is invalid
+       * and the timestamp is >= time */
+      running_time = GST_BUFFER_TIMESTAMP (buffer);
+      /* If possible try to get the running time at the end of the buffer */
+      if (GST_BUFFER_DURATION_IS_VALID (buffer))
+        running_time += GST_BUFFER_DURATION (buffer);
+      /* Only use the segment to convert to running time if the segment is
+       * in TIME format, otherwise do our best to try to sync */
+      if (GST_CLOCK_TIME_IS_VALID (seg->stop)) {
+        if (running_time > seg->stop) {
+          running_time = seg->stop;
+        }
+      }
+      running_time =
+          gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
+
+      GST_DEBUG_OBJECT (selpad,
+          "checking if buffer %p running time=%" GST_TIME_FORMAT
+          " >= stream time=%" GST_TIME_FORMAT, buffer,
+          GST_TIME_ARGS (running_time), GST_TIME_ARGS (cur_running_time));
+      if (running_time >= cur_running_time) {
+        break;
+      }
+
+      GST_DEBUG_OBJECT (selpad, "Removing old cached buffer %p", buffer);
+      g_queue_pop_nth (selpad->cached_buffers, queue_position);
+      gst_selector_pad_free_cached_buffer (cached_buffer);
+
+      for (l = maybe_remove; l != NULL; l = g_slist_next (l)) {
+        /* A buffer after some invalid buffers was removed, it means the invalid buffers
+         * are old, lets also remove them */
+        cached_buffer = l->data;
+        g_queue_remove (selpad->cached_buffers, cached_buffer);
+        gst_selector_pad_free_cached_buffer (cached_buffer);
+      }
+
+      g_slist_free (maybe_remove);
+      maybe_remove = NULL;
+      queue_position = 0;
+    }
+
+    g_slist_free (maybe_remove);
+    maybe_remove = NULL;
+
+    if (g_queue_is_empty (selpad->cached_buffers)) {
+      g_queue_free (selpad->cached_buffers);
+      selpad->cached_buffers = NULL;
+    }
+  }
+
+#if DEBUG_CACHED_BUFFERS
+  gst_input_selector_debug_cached_buffers (sel);
+#endif
+}
+
 static GstFlowReturn
 gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 {
@@ -627,10 +904,16 @@
   sel = GST_INPUT_SELECTOR (parent);
   selpad = GST_SELECTOR_PAD_CAST (pad);
 
+  GST_DEBUG_OBJECT (selpad,
+      "entering chain for buf %p with timestamp %" GST_TIME_FORMAT, buf,
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
   GST_INPUT_SELECTOR_LOCK (sel);
   /* wait or check for flushing */
-  if (gst_input_selector_wait (sel, selpad))
+  if (gst_input_selector_wait (sel, selpad)) {
+    GST_INPUT_SELECTOR_UNLOCK (sel);
     goto flushing;
+  }
 
   GST_LOG_OBJECT (pad, "getting active pad");
 
@@ -639,13 +922,57 @@
 
   /* In sync mode wait until the active pad has advanced
    * after the running time of the current buffer */
-  if (sel->sync_streams && active_sinkpad != pad) {
-    if (gst_input_selector_wait_running_time (sel, selpad, buf))
-      goto flushing;
-  }
+  if (sel->sync_streams) {
+    /* call chain for each cached buffer if we are not the active pad
+     * or if we are the active pad but didn't push anything yet. */
+    if (active_sinkpad != pad || !selpad->pushed) {
+      /* no need to check for sel->cache_buffers as selpad->cached_buffers
+       * will only be valid if cache_buffers is TRUE */
+      if (selpad->cached_buffers && !selpad->sending_cached_buffers) {
+        GstSelectorPadCachedBuffer *cached_buffer;
+        GstSegment saved_segment;
 
-  /* Might have changed while waiting */
-  active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+        saved_segment = selpad->segment;
+
+        selpad->sending_cached_buffers = TRUE;
+        while (!sel->flushing && !selpad->flushing &&
+            (cached_buffer = g_queue_pop_head (selpad->cached_buffers))) {
+          GST_DEBUG_OBJECT (pad, "Cached buffers found, "
+              "invoking chain for cached buffer %p", cached_buffer->buffer);
+
+          selpad->segment = cached_buffer->segment;
+          selpad->events_pending = TRUE;
+          GST_INPUT_SELECTOR_UNLOCK (sel);
+          gst_selector_pad_chain (pad, parent, cached_buffer->buffer);
+          GST_INPUT_SELECTOR_LOCK (sel);
+
+          /* we may have cleaned up the queue in the meantime because of
+           * old buffers */
+          if (!selpad->cached_buffers) {
+            break;
+          }
+        }
+        selpad->sending_cached_buffers = FALSE;
+
+        /* all cached buffers sent, restore segment for current buffer */
+        selpad->segment = saved_segment;
+        selpad->events_pending = TRUE;
+
+        /* Might have changed while calling chain for cached buffers */
+        active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+      }
+    }
+
+    if (active_sinkpad != pad) {
+      GST_INPUT_SELECTOR_UNLOCK (sel);
+      if (gst_input_selector_wait_running_time (sel, selpad, buf))
+        goto flushing;
+      GST_INPUT_SELECTOR_LOCK (sel);
+    }
+
+    /* Might have changed while waiting */
+    active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+  }
 
   /* update the segment on the srcpad */
   start_time = GST_BUFFER_TIMESTAMP (buf);
@@ -693,10 +1020,29 @@
   }
 
   /* forward */
-  GST_LOG_OBJECT (pad, "Forwarding buffer %p", buf);
+  GST_LOG_OBJECT (pad, "Forwarding buffer %p with timestamp %" GST_TIME_FORMAT,
+      buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
 
-  res = gst_pad_push (sel->srcpad, buf);
-  selpad->pushed = TRUE;
+  res = gst_pad_push (sel->srcpad, gst_buffer_ref (buf));
+  GST_LOG_OBJECT (pad, "Buffer %p forwarded result=%d", buf, res);
+
+  GST_INPUT_SELECTOR_LOCK (sel);
+
+  if (sel->sync_streams && sel->cache_buffers) {
+    /* Might have changed while pushing */
+    active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+    /* only set pad to pushed if we are still the active pad */
+    if (active_sinkpad == pad)
+      selpad->pushed = TRUE;
+
+    /* cache buffer as we may need it again if we change pads */
+    gst_selector_pad_cache_buffer (selpad, buf);
+    gst_input_selector_cleanup_old_cached_buffers (sel, pad);
+  } else {
+    selpad->pushed = TRUE;
+    gst_buffer_unref (buf);
+  }
+  GST_INPUT_SELECTOR_UNLOCK (sel);
 
 done:
   return res;
@@ -725,7 +1071,6 @@
 flushing:
   {
     GST_DEBUG_OBJECT (pad, "We are flushing, discard buffer %p", buf);
-    GST_INPUT_SELECTOR_UNLOCK (sel);
     gst_buffer_unref (buf);
     res = GST_FLOW_FLUSHING;
     goto done;
@@ -818,16 +1163,59 @@
    * GstInputSelector:sync-streams
    *
    * If set to %TRUE all inactive streams will be synced to the
-   * running time of the active stream. This makes sure that no
-   * buffers are dropped by input-selector that might be needed
-   * when switching the active pad.
+   * running time of the active stream or to the current clock.
+   *
+   * 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.
    *
    * Since: 0.10.36
    */
   g_object_class_install_property (gobject_class, PROP_SYNC_STREAMS,
       g_param_spec_boolean ("sync-streams", "Sync Streams",
-          "Synchronize inactive streams to the running time of the active stream",
-          DEFAULT_SYNC_STREAMS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "Synchronize inactive streams to the running time of the active "
+          "stream or to the current clock",
+          DEFAULT_SYNC_STREAMS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_READY));
+
+  /**
+   * GstInputSelector:sync-mode
+   *
+   * Select how input-selector will sync buffers when in sync-streams mode.
+   *
+   * Note that when using the "active-segment" mode, the "active-segment" may
+   * be ahead of current clock time when switching the active pad, as the current
+   * active pad may have pushed more buffers than what was displayed/consumed,
+   * which may cause delays and some missing buffers.
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (gobject_class, PROP_SYNC_MODE,
+      g_param_spec_enum ("sync-mode", "Sync mode",
+          "Behavior in sync-streams mode", GST_TYPE_INPUT_SELECTOR_SYNC_MODE,
+          DEFAULT_SYNC_MODE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_READY));
+
+  /**
+   * GstInputSelector:cache-buffers
+   *
+   * If set to %TRUE and GstInputSelector:sync-streams is also set to %TRUE,
+   * the active pad will cache the buffers still considered valid (after current
+   * running time, see sync-mode) to avoid missing frames if/when the pad is
+   * reactivated.
+   *
+   * The active pad may push more buffers than what is currently displayed/consumed
+   * and when changing pads those buffers will be discarded and the only way to
+   * reactivate that pad without loosing the already consumed buffers is to enable cache.
+   */
+  g_object_class_install_property (gobject_class, PROP_CACHE_BUFFERS,
+      g_param_spec_boolean ("cache-buffers", "Cache Buffers",
+          "Cache buffers for active-pad",
+          DEFAULT_CACHE_BUFFERS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_READY));
 
   /**
    * GstInputSelector::block:
@@ -880,6 +1268,12 @@
   g_mutex_init (&sel->lock);
   g_cond_init (&sel->cond);
   sel->blocked = FALSE;
+
+  /* lets give a change for downstream to do something on
+   * active-pad change before we start pushing new buffers */
+  g_signal_connect_data (sel, "notify::active-pad",
+      (GCallback) gst_input_selector_active_pad_changed, NULL,
+      NULL, G_CONNECT_AFTER);
 }
 
 static void
@@ -934,13 +1328,6 @@
   active_pad_p = &self->active_sinkpad;
   gst_object_replace ((GstObject **) active_pad_p, GST_OBJECT_CAST (pad));
 
-  gst_pad_push_event (pad, gst_event_new_reconfigure ());
-
-  /* Wake up all non-active pads in sync mode, they might be
-   * the active pad now */
-  if (self->sync_streams)
-    GST_INPUT_SELECTOR_BROADCAST (self);
-
   GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT,
       self->active_sinkpad);
 
@@ -961,17 +1348,35 @@
       pad = g_value_get_object (value);
 
       GST_INPUT_SELECTOR_LOCK (sel);
+
+#if DEBUG_CACHED_BUFFERS
+      gst_input_selector_debug_cached_buffers (sel);
+#endif
+
       gst_input_selector_set_active_pad (sel, pad);
+
+#if DEBUG_CACHED_BUFFERS
+      gst_input_selector_debug_cached_buffers (sel);
+#endif
+
       GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
     }
     case PROP_SYNC_STREAMS:
-    {
       GST_INPUT_SELECTOR_LOCK (sel);
       sel->sync_streams = g_value_get_boolean (value);
       GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
-    }
+    case PROP_SYNC_MODE:
+      GST_INPUT_SELECTOR_LOCK (sel);
+      sel->sync_mode = g_value_get_enum (value);
+      GST_INPUT_SELECTOR_UNLOCK (sel);
+      break;
+    case PROP_CACHE_BUFFERS:
+      GST_INPUT_SELECTOR_LOCK (object);
+      sel->cache_buffers = g_value_get_boolean (value);
+      GST_INPUT_SELECTOR_UNLOCK (object);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -979,6 +1384,16 @@
 }
 
 static void
+gst_input_selector_active_pad_changed (GstInputSelector * sel,
+    GParamSpec * pspec, gpointer user_data)
+{
+  /* Wake up all non-active pads in sync mode, they might be
+   * the active pad now */
+  if (sel->sync_streams)
+    GST_INPUT_SELECTOR_BROADCAST (sel);
+}
+
+static void
 gst_input_selector_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec)
 {
@@ -1000,6 +1415,16 @@
       g_value_set_boolean (value, sel->sync_streams);
       GST_INPUT_SELECTOR_UNLOCK (object);
       break;
+    case PROP_SYNC_MODE:
+      GST_INPUT_SELECTOR_LOCK (object);
+      g_value_set_enum (value, sel->sync_mode);
+      GST_INPUT_SELECTOR_UNLOCK (object);
+      break;
+    case PROP_CACHE_BUFFERS:
+      GST_INPUT_SELECTOR_LOCK (object);
+      g_value_set_boolean (value, sel->cache_buffers);
+      GST_INPUT_SELECTOR_UNLOCK (object);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1270,7 +1695,7 @@
     gst_selector_pad_reset (selpad);
 
     if (selpad->tags) {
-      gst_tag_list_free (selpad->tags);
+      gst_tag_list_unref (selpad->tags);
       selpad->tags = NULL;
     }
   }
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index 8a5248a..dd48a51 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -48,6 +48,18 @@
 			GST_INPUT_SELECTOR_GET_LOCK(sel)))
 #define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
 
+/**
+ * GstInputSelectorSyncMode:
+ * @GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT: Sync using the current active segment.
+ * @GST_INPUT_SELECTOR_SYNC_MODE_CLOCK: Sync using the clock.
+ *
+ * The different ways that input-selector can behave when in sync-streams mode.
+ */
+typedef enum {
+  GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT,
+  GST_INPUT_SELECTOR_SYNC_MODE_CLOCK
+} GstInputSelectorSyncMode;
+
 struct _GstInputSelector {
   GstElement element;
 
@@ -57,6 +69,8 @@
   guint n_pads;
   guint padcount;
   gboolean sync_streams;
+  GstInputSelectorSyncMode sync_mode;
+  gboolean cache_buffers;
 
   GMutex lock;
   GCond cond;
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index 82e2e11..158da10 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -41,7 +41,7 @@
  * The default queue size limits are 100 buffers, 2MB of data, or
  * two seconds worth of data, whichever is reached first.
  *
- * If you set temp-tmpl to a value such as /tmp/gstreamer-XXXXXX, the element
+ * If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element
  * will allocate a random free filename and buffer data in the file.
  * By using this, it will buffer the entire stream data on the file independently
  * of the queue size limits, they will only be used for buffering statistics.
@@ -2427,21 +2427,8 @@
 
   if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER) {
     GstBuffer *buffer;
-#if 0
-    GstCaps *caps;
-#endif
 
     buffer = GST_BUFFER_CAST (data);
-#if 0
-    caps = GST_BUFFER_CAPS (buffer);
-#endif
-
-#if 0
-    /* set caps before pushing the buffer so that core does not try to do
-     * something fancy to check if this is possible. */
-    if (caps && caps != GST_PAD_CAPS (queue->srcpad))
-      gst_pad_set_caps (queue->srcpad, caps);
-#endif
 
     result = gst_pad_push (queue->srcpad, buffer);
 
@@ -2471,23 +2458,9 @@
     GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
   } else if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER_LIST) {
     GstBufferList *buffer_list;
-#if 0
-    GstBuffer *first_buf;
-    GstCaps *caps;
-#endif
 
     buffer_list = GST_BUFFER_LIST_CAST (data);
 
-#if 0
-    first_buf = gst_buffer_list_get (buffer_list, 0);
-    caps = (first_buf != NULL) ? GST_BUFFER_CAPS (first_buf) : NULL;
-
-    /* set caps before pushing the buffer so that core does not try to do
-     * something fancy to check if this is possible. */
-    if (caps && caps != GST_PAD_CAPS (queue->srcpad))
-      gst_pad_set_caps (queue->srcpad, caps);
-#endif
-
     result = gst_pad_push_list (queue->srcpad, buffer_list);
 
     /* need to check for srcresult here as well */
@@ -3222,7 +3195,7 @@
     case PROP_TEMP_LOCATION:
       g_free (queue->temp_location);
       queue->temp_location = g_value_dup_string (value);
-      /* you can set the property back to NULL to make it use the temp-tmpl
+      /* you can set the property back to NULL to make it use the temp-template
        * property. */
       queue->temp_location_set = queue->temp_location != NULL;
       break;
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index 436a4e9..e6c4de2 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -1190,6 +1190,12 @@
     g_signal_emit (typefind, gst_type_find_element_signals[HAVE_TYPE],
         0, probability, 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);
diff --git a/po/af.gmo b/po/af.gmo
index adeef7a..dc52152 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index d799a1d..0530494 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1131,7 +1131,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Wys etikette (ook bekend as metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1201,12 +1201,19 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Pyplyn word gestel na NULL ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/az.gmo b/po/az.gmo
index 1c8cb19..52ec0cf 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index ba265a7..7563ac1 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1077,7 +1077,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1145,12 +1145,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/be.gmo b/po/be.gmo
index c7c1783..30c5b03 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index af6f723..659461a 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1086,7 +1086,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1154,12 +1154,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 1e937d5..19c9a1e 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 3929568..b36f1cc 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1129,7 +1129,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Изходни съобщения за етикетите (метаданните)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1198,12 +1198,20 @@
 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"
+
 msgid "Waiting for EOS...\n"
 msgstr "Изчакване на EOS…\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Получен е край на поток: конвейерът се спира…\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Прекъсване: Конвейерът се спира…\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Възникна грешка при изчакването на EOS\n"
 
diff --git a/po/ca.gmo b/po/ca.gmo
index 0592c61..064bef0 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 82f7d81..dd4c7a9 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1136,7 +1136,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Mostra els marcadors (també coneguts com metadades)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1206,12 +1206,22 @@
 "S'ha habilitat el final del flux en tancar -- S'està forçant un final del "
 "flux al conducte\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"S'ha habilitat el final del flux en tancar -- S'està forçant un final del "
+"flux al conducte\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "S'està esperant al final del flux…\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "S'ha rebut un final del flux - s'està aturant el conducte…\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrupció: S'està aturant el conducte…\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "S'ha produït un error en esperar al final del flux\n"
 
diff --git a/po/cs.gmo b/po/cs.gmo
index f56fc51..2e8bb95 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 7e343ac..1575e42 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1132,7 +1132,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Vypsat štítky (známé také jako metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1205,12 +1205,22 @@
 "Zakončení proudu (EOS) při vypnutí povoleno -- Vynucuje se zakončení proudu "
 "v rouře\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Zakončení proudu (EOS) při vypnutí povoleno -- Vynucuje se zakončení proudu "
+"v rouře\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Čeká se na konec proudu (EOS)…\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Obdržen konec proudu (EOS) – zastavuje se roura…\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Přerušení: Zastavuje se roura…\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Nastala chyba při čekání na konec proudu (EOS)\n"
 
diff --git a/po/da.gmo b/po/da.gmo
index b4debcb..6f209f8 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 2170f7b..13a430e 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1131,7 +1131,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Uddatamærkater (også kendt som metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1200,12 +1200,21 @@
 msgstr ""
 "Medieslut ved nedlukning aktiveret -- Gennemtving medieslut på rørledningen\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Medieslut ved nedlukning aktiveret -- Gennemtving medieslut på rørledningen\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Venter på medieslut...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Medieslut modtaget - stopper rørledning...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Afbrydelse: Stopper rørledning...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "En fejl opstod mens der ventedes på medieslut\n"
 
diff --git a/po/de.gmo b/po/de.gmo
index 96fb320..8dc740f 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 49cd9e6..e2166e8 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1153,7 +1153,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Kennzeichen (auch bekannt als Metadaten) ausgeben"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1222,12 +1222,21 @@
 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 -- EOS wird auf die Leitung erzwungen\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Auf EOS wird gewartet …\n"
 
 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: Leitung wird gestoppt ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Ein Fehler ist beim Warten auf EOS aufgetreten\n"
 
diff --git a/po/el.gmo b/po/el.gmo
index 8940cd0..c1c3012 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index f1505a9..343f4e9 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1144,7 +1144,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Ετικέτες εξόδου (επίσης γνωστές ως μεταδεδομένα)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1213,12 +1213,21 @@
 msgstr ""
 "Ενεργοποίηση του EOS κατά τον τερματισμό -- Επιβολή του EOS στη διασωλήνωση\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Ενεργοποίηση του EOS κατά τον τερματισμό -- Επιβολή του EOS στη διασωλήνωση\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Αναμονή για EOS…\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Λήψη EOS - διακοπή διασωλήνωσης…\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Διακοπή: Τερματισμός διασωλήνωσης…\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Προέκυψε σφάλμα κατά την αναμονή για EOS\n"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 5653952..9f5718e 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 febb66a..de86948 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1133,7 +1133,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Output tags (also known as metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1204,12 +1204,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/eo.gmo b/po/eo.gmo
index 6e295da..95c5c6a 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index c24eecb..f15bdc2 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1068,7 +1068,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1136,12 +1136,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/es.gmo b/po/es.gmo
index f6ca501..2799c43 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index ffd14fa..42c91a9 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1138,7 +1138,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Etiquetas de salida (también conocidos como metadatos)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1206,12 +1206,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS al apagar activado; Forzando EOS en la tubería\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS al apagar activado; Forzando EOS en la tubería\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Esperando a EOS…\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS recibido: parando el conducto …\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrumpir: parando el conducto …\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Ocurrió un error al esperar a EOS\n"
 
diff --git a/po/eu.gmo b/po/eu.gmo
index dc74212..a0e0ce4 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index f8791f5..7142b11 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1136,7 +1136,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Erakutsi etiketak (metadatu gisa ere ezagutzen direnak)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1204,12 +1204,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS itzaltzean gaituta -- EOS derrigortzen kanalizazioan\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS itzaltzean gaituta -- EOS derrigortzen kanalizazioan\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "EOSren zain...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOSa jasota - kanalizazioa gelditzen...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Eten: Kanalizazioa gelditzen... \n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Errorea gertatu da EOSren zain egotean\n"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index d3bcae5..5c9cecb 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 517739e..a4cc57b 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1129,7 +1129,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tulostemerkinnät (tunnetaan myös metadatana)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1199,12 +1199,22 @@
 "Virran-loppu sammutettaessa käytössä -- pakotetaan virran-loppu "
 "liukuhihnalle\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Virran-loppu sammutettaessa käytössä -- pakotetaan virran-loppu "
+"liukuhihnalle\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Odotetaan virran loppua...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Virran-loppu vastaanotettu - pysäytetään liukuhihna...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Keskeytys: Pysäytetään liukuhihna ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Tapahtui virhe odotettaessa virran-loppua\n"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index 8b6a749..ba0fc13 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 1182495..811f620 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1133,7 +1133,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Affiche les balises (aussi connues sous le nom de métadonnées)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1201,12 +1201,20 @@
 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é -- EOS forcé sur le pipeline\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Attente d'EOS...\n"
 
 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 : 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"
 
diff --git a/po/gl.gmo b/po/gl.gmo
index 5172843..f4b527b 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 9713502..5f0d995 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1128,7 +1128,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Etiquetas de saída (tamén coñecido como metadatos)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1196,12 +1196,20 @@
 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; Forzando EOS na tubería\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Agardando pola EOS...\n"
 
 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: parando a canalización …\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Produciuse un erro ao esperar a EOS\n"
 
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index 293261a..0429d35 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.11.91\n"
+"Project-Id-Version: gstreamer 0.11.92\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -98,7 +98,7 @@
 msgid "Show GStreamer Options"
 msgstr ""
 
-#: gst/gst.c:927
+#: gst/gst.c:926
 msgid "Unknown option"
 msgstr ""
 
@@ -299,554 +299,554 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
-#: gst/gsttaglist.c:101
+#: gst/gsttaglist.c:110
 msgid "title"
 msgstr ""
 
-#: gst/gsttaglist.c:101
+#: gst/gsttaglist.c:110
 msgid "commonly used title"
 msgstr ""
 
-#: gst/gsttaglist.c:104
+#: gst/gsttaglist.c:113
 msgid "title sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:104
+#: gst/gsttaglist.c:113
 msgid "commonly used title for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:107
+#: gst/gsttaglist.c:116
 msgid "artist"
 msgstr ""
 
-#: gst/gsttaglist.c:108
+#: gst/gsttaglist.c:117
 msgid "person(s) responsible for the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:112
+#: gst/gsttaglist.c:121
 msgid "artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:113
+#: gst/gsttaglist.c:122
 msgid "person(s) responsible for the recording for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:116
+#: gst/gsttaglist.c:125
 msgid "album"
 msgstr ""
 
-#: gst/gsttaglist.c:117
+#: gst/gsttaglist.c:126
 msgid "album containing this data"
 msgstr ""
 
-#: gst/gsttaglist.c:120
+#: gst/gsttaglist.c:129
 msgid "album sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:121
+#: gst/gsttaglist.c:130
 msgid "album containing this data for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:124
+#: gst/gsttaglist.c:133
 msgid "album artist"
 msgstr ""
 
-#: gst/gsttaglist.c:125
+#: gst/gsttaglist.c:134
 msgid "The artist of the entire album, as it should be displayed"
 msgstr ""
 
-#: gst/gsttaglist.c:129
+#: gst/gsttaglist.c:138
 msgid "album artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:130
+#: gst/gsttaglist.c:139
 msgid "The artist of the entire album, as it should be sorted"
 msgstr ""
 
-#: gst/gsttaglist.c:132
+#: gst/gsttaglist.c:141
 msgid "date"
 msgstr ""
 
-#: gst/gsttaglist.c:132
+#: gst/gsttaglist.c:141
 msgid "date the data was created (as a GDate structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:134
+#: gst/gsttaglist.c:143
 msgid "datetime"
 msgstr ""
 
-#: gst/gsttaglist.c:135
+#: gst/gsttaglist.c:144
 msgid "date and time the data was created (as a GstDateTime structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:139
+#: gst/gsttaglist.c:148
 msgid "genre"
 msgstr ""
 
-#: gst/gsttaglist.c:140
+#: gst/gsttaglist.c:149
 msgid "genre this data belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:143
+#: gst/gsttaglist.c:152
 msgid "comment"
 msgstr ""
 
-#: gst/gsttaglist.c:144
+#: gst/gsttaglist.c:153
 msgid "free text commenting the data"
 msgstr ""
 
-#: gst/gsttaglist.c:147
+#: gst/gsttaglist.c:156
 msgid "extended comment"
 msgstr ""
 
-#: gst/gsttaglist.c:148
+#: gst/gsttaglist.c:157
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
 
-#: gst/gsttaglist.c:152
+#: gst/gsttaglist.c:161
 msgid "track number"
 msgstr ""
 
-#: gst/gsttaglist.c:153
+#: gst/gsttaglist.c:162
 msgid "track number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:156
+#: gst/gsttaglist.c:165
 msgid "track count"
 msgstr ""
 
-#: gst/gsttaglist.c:157
+#: gst/gsttaglist.c:166
 msgid "count of tracks inside collection this track belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:161
+#: gst/gsttaglist.c:170
 msgid "disc number"
 msgstr ""
 
-#: gst/gsttaglist.c:162
+#: gst/gsttaglist.c:171
 msgid "disc number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:165
+#: gst/gsttaglist.c:174
 msgid "disc count"
 msgstr ""
 
-#: gst/gsttaglist.c:166
+#: gst/gsttaglist.c:175
 msgid "count of discs inside collection this disc belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:170
+#: gst/gsttaglist.c:179
 msgid "location"
 msgstr ""
 
-#: gst/gsttaglist.c:170
+#: gst/gsttaglist.c:179
 msgid ""
 "Origin of media as a URI (location, where the original of the file or stream "
 "is hosted)"
 msgstr ""
 
-#: gst/gsttaglist.c:175
+#: gst/gsttaglist.c:184
 msgid "homepage"
 msgstr ""
 
-#: gst/gsttaglist.c:176
+#: gst/gsttaglist.c:185
 msgid "Homepage for this media (i.e. artist or movie homepage)"
 msgstr ""
 
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:188
 msgid "description"
 msgstr ""
 
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:189
 msgid "short text describing the content of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:182
+#: gst/gsttaglist.c:192
 msgid "version"
 msgstr ""
 
-#: gst/gsttaglist.c:182
+#: gst/gsttaglist.c:192
 msgid "version of this data"
 msgstr ""
 
-#: gst/gsttaglist.c:183
+#: gst/gsttaglist.c:194
 msgid "ISRC"
 msgstr ""
 
-#: gst/gsttaglist.c:185
+#: gst/gsttaglist.c:196
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
 msgstr ""
 
-#: gst/gsttaglist.c:189
+#: gst/gsttaglist.c:200
 msgid "organization"
 msgstr ""
 
-#: gst/gsttaglist.c:191
+#: gst/gsttaglist.c:203
 msgid "copyright"
 msgstr ""
 
-#: gst/gsttaglist.c:191
+#: gst/gsttaglist.c:203
 msgid "copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:193
+#: gst/gsttaglist.c:205
 msgid "copyright uri"
 msgstr ""
 
-#: gst/gsttaglist.c:194
+#: gst/gsttaglist.c:206
 msgid "URI to the copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:196
+#: gst/gsttaglist.c:208
 msgid "encoded by"
 msgstr ""
 
-#: gst/gsttaglist.c:196
+#: gst/gsttaglist.c:208
 msgid "name of the encoding person or organization"
 msgstr ""
 
-#: gst/gsttaglist.c:200
+#: gst/gsttaglist.c:212
 msgid "contact"
 msgstr ""
 
-#: gst/gsttaglist.c:200
+#: gst/gsttaglist.c:212
 msgid "contact information"
 msgstr ""
 
-#: gst/gsttaglist.c:202
+#: gst/gsttaglist.c:214
 msgid "license"
 msgstr ""
 
-#: gst/gsttaglist.c:202
+#: gst/gsttaglist.c:214
 msgid "license of data"
 msgstr ""
 
-#: gst/gsttaglist.c:204
+#: gst/gsttaglist.c:216
 msgid "license uri"
 msgstr ""
 
-#: gst/gsttaglist.c:205
+#: gst/gsttaglist.c:217
 msgid "URI to the license of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:208
+#: gst/gsttaglist.c:220
 msgid "performer"
 msgstr ""
 
-#: gst/gsttaglist.c:209
+#: gst/gsttaglist.c:221
 msgid "person(s) performing"
 msgstr ""
 
-#: gst/gsttaglist.c:212
+#: gst/gsttaglist.c:224
 msgid "composer"
 msgstr ""
 
-#: gst/gsttaglist.c:213
+#: gst/gsttaglist.c:225
 msgid "person(s) who composed the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:217
+#: gst/gsttaglist.c:229
 msgid "duration"
 msgstr ""
 
-#: gst/gsttaglist.c:217
+#: gst/gsttaglist.c:229
 msgid "length in GStreamer time units (nanoseconds)"
 msgstr ""
 
-#: gst/gsttaglist.c:220
+#: gst/gsttaglist.c:232
 msgid "codec"
 msgstr ""
 
-#: gst/gsttaglist.c:221
+#: gst/gsttaglist.c:233
 msgid "codec the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:236
 msgid "video codec"
 msgstr ""
 
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:236
 msgid "codec the video data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:227
+#: gst/gsttaglist.c:239
 msgid "audio codec"
 msgstr ""
 
-#: gst/gsttaglist.c:227
+#: gst/gsttaglist.c:239
 msgid "codec the audio data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:230
+#: gst/gsttaglist.c:242
 msgid "subtitle codec"
 msgstr ""
 
-#: gst/gsttaglist.c:230
+#: gst/gsttaglist.c:242
 msgid "codec the subtitle data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:232
+#: gst/gsttaglist.c:244
 msgid "container format"
 msgstr ""
 
-#: gst/gsttaglist.c:233
+#: gst/gsttaglist.c:245
 msgid "container format the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:235
+#: gst/gsttaglist.c:247
 msgid "bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:235
+#: gst/gsttaglist.c:247
 msgid "exact or average bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:237
+#: gst/gsttaglist.c:249
 msgid "nominal bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:237
+#: gst/gsttaglist.c:249
 msgid "nominal bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:239
+#: gst/gsttaglist.c:251
 msgid "minimum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:239
+#: gst/gsttaglist.c:251
 msgid "minimum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:241
+#: gst/gsttaglist.c:253
 msgid "maximum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:241
+#: gst/gsttaglist.c:253
 msgid "maximum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:244
+#: gst/gsttaglist.c:256
 msgid "encoder"
 msgstr ""
 
-#: gst/gsttaglist.c:244
+#: gst/gsttaglist.c:256
 msgid "encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:247
+#: gst/gsttaglist.c:259
 msgid "encoder version"
 msgstr ""
 
-#: gst/gsttaglist.c:248
+#: gst/gsttaglist.c:260
 msgid "version of the encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:250
+#: gst/gsttaglist.c:262
 msgid "serial"
 msgstr ""
 
-#: gst/gsttaglist.c:250
+#: gst/gsttaglist.c:262
 msgid "serial number of track"
 msgstr ""
 
-#: gst/gsttaglist.c:252
+#: gst/gsttaglist.c:264
 msgid "replaygain track gain"
 msgstr ""
 
-#: gst/gsttaglist.c:252
+#: gst/gsttaglist.c:264
 msgid "track gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:254
+#: gst/gsttaglist.c:266
 msgid "replaygain track peak"
 msgstr ""
 
-#: gst/gsttaglist.c:254
+#: gst/gsttaglist.c:266
 msgid "peak of the track"
 msgstr ""
 
-#: gst/gsttaglist.c:256
+#: gst/gsttaglist.c:268
 msgid "replaygain album gain"
 msgstr ""
 
-#: gst/gsttaglist.c:256
+#: gst/gsttaglist.c:268
 msgid "album gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:258
+#: gst/gsttaglist.c:270
 msgid "replaygain album peak"
 msgstr ""
 
-#: gst/gsttaglist.c:258
+#: gst/gsttaglist.c:270
 msgid "peak of the album"
 msgstr ""
 
-#: gst/gsttaglist.c:260
+#: gst/gsttaglist.c:272
 msgid "replaygain reference level"
 msgstr ""
 
-#: gst/gsttaglist.c:261
+#: gst/gsttaglist.c:273
 msgid "reference level of track and album gain values"
 msgstr ""
 
-#: gst/gsttaglist.c:263
+#: gst/gsttaglist.c:275
 msgid "language code"
 msgstr ""
 
-#: gst/gsttaglist.c:264
+#: gst/gsttaglist.c:276
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr ""
 
-#: gst/gsttaglist.c:267
+#: gst/gsttaglist.c:279
 msgid "language name"
 msgstr ""
 
-#: gst/gsttaglist.c:268
+#: gst/gsttaglist.c:280
 msgid "freeform name of the language this stream is in"
 msgstr ""
 
-#: gst/gsttaglist.c:270
+#: gst/gsttaglist.c:282
 msgid "image"
 msgstr ""
 
-#: gst/gsttaglist.c:270
+#: gst/gsttaglist.c:282
 msgid "image related to this stream"
 msgstr ""
 
 #. TRANSLATORS: 'preview image' = image that shows a preview of the full image
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:286
 msgid "preview image"
 msgstr ""
 
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:286
 msgid "preview image related to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:275
+#: gst/gsttaglist.c:288
 msgid "attachment"
 msgstr ""
 
-#: gst/gsttaglist.c:275
+#: gst/gsttaglist.c:288
 msgid "file attached to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:278
+#: gst/gsttaglist.c:291
 msgid "beats per minute"
 msgstr ""
 
-#: gst/gsttaglist.c:278
+#: gst/gsttaglist.c:292
 msgid "number of beats per minute in audio"
 msgstr ""
 
-#: gst/gsttaglist.c:280
+#: gst/gsttaglist.c:294
 msgid "keywords"
 msgstr ""
 
-#: gst/gsttaglist.c:280
+#: gst/gsttaglist.c:294
 msgid "comma separated keywords describing the content"
 msgstr ""
 
-#: gst/gsttaglist.c:283
+#: gst/gsttaglist.c:297
 msgid "geo location name"
 msgstr ""
 
-#: gst/gsttaglist.c:283
+#: gst/gsttaglist.c:298
 msgid ""
 "human readable descriptive location of where the media has been recorded or "
 "produced"
 msgstr ""
 
-#: gst/gsttaglist.c:286
+#: gst/gsttaglist.c:301
 msgid "geo location latitude"
 msgstr ""
 
-#: gst/gsttaglist.c:287
+#: gst/gsttaglist.c:302
 msgid ""
 "geo latitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the equator, negative values for "
 "southern latitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:291
+#: gst/gsttaglist.c:306
 msgid "geo location longitude"
 msgstr ""
 
-#: gst/gsttaglist.c:292
+#: gst/gsttaglist.c:307
 msgid ""
 "geo longitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,  "
 "negative values for western longitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:296
+#: gst/gsttaglist.c:311
 msgid "geo location elevation"
 msgstr ""
 
-#: gst/gsttaglist.c:297
+#: gst/gsttaglist.c:312
 msgid ""
 "geo elevation of where the media has been recorded or produced in meters "
 "according to WGS84 (zero is average sea level)"
 msgstr ""
 
-#: gst/gsttaglist.c:300
+#: gst/gsttaglist.c:315
 msgid "geo location country"
 msgstr ""
 
-#: gst/gsttaglist.c:301
+#: gst/gsttaglist.c:316
 msgid "country (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:304
+#: gst/gsttaglist.c:319
 msgid "geo location city"
 msgstr ""
 
-#: gst/gsttaglist.c:305
+#: gst/gsttaglist.c:320
 msgid "city (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:308
+#: gst/gsttaglist.c:323
 msgid "geo location sublocation"
 msgstr ""
 
-#: gst/gsttaglist.c:309
+#: gst/gsttaglist.c:324
 msgid ""
 "a location whithin a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
 
-#: gst/gsttaglist.c:312
+#: gst/gsttaglist.c:327
 msgid "geo location horizontal error"
 msgstr ""
 
-#: gst/gsttaglist.c:313
+#: gst/gsttaglist.c:328
 msgid "expected error of the horizontal positioning measures (in meters)"
 msgstr ""
 
-#: gst/gsttaglist.c:316
+#: gst/gsttaglist.c:331
 msgid "geo location movement speed"
 msgstr ""
 
-#: gst/gsttaglist.c:317
+#: gst/gsttaglist.c:332
 msgid ""
 "movement speed of the capturing device while performing the capture in m/s"
 msgstr ""
 
-#: gst/gsttaglist.c:320
+#: gst/gsttaglist.c:335
 msgid "geo location movement direction"
 msgstr ""
 
-#: gst/gsttaglist.c:321
+#: gst/gsttaglist.c:336
 msgid ""
 "indicates the movement direction of the device performing the capture of a "
 "media. It is represented as degrees in floating point representation, 0 "
 "means the geographic north, and increases clockwise"
 msgstr ""
 
-#: gst/gsttaglist.c:326
+#: gst/gsttaglist.c:341
 msgid "geo location capture direction"
 msgstr ""
 
-#: gst/gsttaglist.c:327
+#: gst/gsttaglist.c:342
 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 "
@@ -854,117 +854,117 @@
 msgstr ""
 
 #. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
-#: gst/gsttaglist.c:333
+#: gst/gsttaglist.c:348
 msgid "show name"
 msgstr ""
 
-#: gst/gsttaglist.c:334
+#: gst/gsttaglist.c:349
 msgid "Name of the tv/podcast/series show the media is from"
 msgstr ""
 
 #. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-#: gst/gsttaglist.c:338
+#: gst/gsttaglist.c:354
 msgid "show sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:339
+#: gst/gsttaglist.c:355
 msgid ""
 "Name of the tv/podcast/series show the media is from, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:342
+#: gst/gsttaglist.c:358
 msgid "episode number"
 msgstr ""
 
-#: gst/gsttaglist.c:343
+#: gst/gsttaglist.c:359
 msgid "The episode number in the season the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:346
+#: gst/gsttaglist.c:362
 msgid "season number"
 msgstr ""
 
-#: gst/gsttaglist.c:347
+#: gst/gsttaglist.c:363
 msgid "The season number of the show the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:350
+#: gst/gsttaglist.c:366
 msgid "lyrics"
 msgstr ""
 
-#: gst/gsttaglist.c:350
+#: gst/gsttaglist.c:366
 msgid "The lyrics of the media, commonly used for songs"
 msgstr ""
 
-#: gst/gsttaglist.c:353
+#: gst/gsttaglist.c:369
 msgid "composer sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:354
+#: gst/gsttaglist.c:370
 msgid "person(s) who composed the recording, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:356
+#: gst/gsttaglist.c:372
 msgid "grouping"
 msgstr ""
 
-#: gst/gsttaglist.c:357
+#: gst/gsttaglist.c:373
 msgid ""
 "Groups related media that spans multiple tracks, like the different pieces "
 "of a concerto. It is a higher level than a track, but lower than an album"
 msgstr ""
 
-#: gst/gsttaglist.c:361
+#: gst/gsttaglist.c:377
 msgid "user rating"
 msgstr ""
 
-#: gst/gsttaglist.c:362
+#: gst/gsttaglist.c:378
 msgid ""
 "Rating attributed by a user. The higher the rank, the more the user likes "
 "this media"
 msgstr ""
 
-#: gst/gsttaglist.c:365
+#: gst/gsttaglist.c:381
 msgid "device manufacturer"
 msgstr ""
 
-#: gst/gsttaglist.c:366
+#: gst/gsttaglist.c:382
 msgid "Manufacturer of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:368
+#: gst/gsttaglist.c:384
 msgid "device model"
 msgstr ""
 
-#: gst/gsttaglist.c:369
+#: gst/gsttaglist.c:385
 msgid "Model of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:371
+#: gst/gsttaglist.c:387
 msgid "application name"
 msgstr ""
 
-#: gst/gsttaglist.c:371
+#: gst/gsttaglist.c:388
 msgid "Application used to create the media"
 msgstr ""
 
-#: gst/gsttaglist.c:373
+#: gst/gsttaglist.c:390
 msgid "application data"
 msgstr ""
 
-#: gst/gsttaglist.c:374
+#: gst/gsttaglist.c:391
 msgid "Arbitrary application data to be serialized into the media"
 msgstr ""
 
-#: gst/gsttaglist.c:376
+#: gst/gsttaglist.c:393
 msgid "image orientation"
 msgstr ""
 
-#: gst/gsttaglist.c:377
+#: gst/gsttaglist.c:394
 msgid "How the image should be rotated or flipped before display"
 msgstr ""
 
-#: gst/gsttaglist.c:416
+#: gst/gsttaglist.c:433
 msgid ", "
 msgstr ""
 
@@ -1048,25 +1048,25 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2367
+#: libs/gst/base/gstbasesrc.c:2365
 msgid "Internal clock error."
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2709 libs/gst/base/gstbasesrc.c:2718
-#: libs/gst/base/gstbasesink.c:3715 plugins/elements/gstqueue.c:1175
-#: plugins/elements/gstqueue2.c:2577
+#: libs/gst/base/gstbasesrc.c:2707 libs/gst/base/gstbasesrc.c:2716
+#: libs/gst/base/gstbasesink.c:3748 plugins/elements/gstqueue.c:1175
+#: plugins/elements/gstqueue2.c:2550
 msgid "Internal data flow error."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:2697
+#: libs/gst/base/gstbasesink.c:2708
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:3104
+#: libs/gst/base/gstbasesink.c:3115
 msgid "Internal data flow problem."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:3705
+#: libs/gst/base/gstbasesink.c:3738
 msgid "Internal data stream error."
 msgstr ""
 
@@ -1173,79 +1173,79 @@
 msgid "Stream contains no data."
 msgstr ""
 
-#: tools/gst-inspect.c:250
+#: tools/gst-inspect.c:248
 msgid "Implemented Interfaces:\n"
 msgstr ""
 
-#: tools/gst-inspect.c:336
+#: tools/gst-inspect.c:334
 msgid "readable"
 msgstr ""
 
-#: tools/gst-inspect.c:345
+#: tools/gst-inspect.c:343
 msgid "writable"
 msgstr ""
 
-#: tools/gst-inspect.c:349
+#: tools/gst-inspect.c:347
 msgid "controllable"
 msgstr ""
 
-#: tools/gst-inspect.c:353
+#: tools/gst-inspect.c:351
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
 msgstr ""
 
-#: tools/gst-inspect.c:355
+#: tools/gst-inspect.c:353
 msgid "changeable only in NULL, READY or PAUSED state"
 msgstr ""
 
-#: tools/gst-inspect.c:357
+#: tools/gst-inspect.c:355
 msgid "changeable only in NULL or READY state"
 msgstr ""
 
-#: tools/gst-inspect.c:958
+#: tools/gst-inspect.c:956
 msgid "Blacklisted files:"
 msgstr ""
 
-#: tools/gst-inspect.c:970 tools/gst-inspect.c:1067
+#: tools/gst-inspect.c:968 tools/gst-inspect.c:1065
 msgid "Total count: "
 msgstr ""
 
-#: tools/gst-inspect.c:971
+#: tools/gst-inspect.c:969
 #, c-format
 msgid "%d blacklisted file"
 msgid_plural "%d blacklisted files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1068
+#: tools/gst-inspect.c:1066
 #, c-format
 msgid "%d plugin"
 msgid_plural "%d plugins"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1071
+#: tools/gst-inspect.c:1069
 #, c-format
 msgid "%d blacklist entry"
 msgid_plural "%d blacklist entries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1076
+#: tools/gst-inspect.c:1074
 #, c-format
 msgid "%d feature"
 msgid_plural "%d features"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1514
+#: tools/gst-inspect.c:1511
 msgid "Print all elements"
 msgstr ""
 
-#: tools/gst-inspect.c:1516
+#: tools/gst-inspect.c:1513
 msgid "Print list of blacklisted files"
 msgstr ""
 
-#: tools/gst-inspect.c:1518
+#: tools/gst-inspect.c:1515
 msgid ""
 "Print a machine-parsable list of features the specified plugin or all "
 "plugins provide.\n"
@@ -1253,20 +1253,20 @@
 "automatic plugin installation mechanisms"
 msgstr ""
 
-#: tools/gst-inspect.c:1523
+#: tools/gst-inspect.c:1520
 msgid "List the plugin contents"
 msgstr ""
 
-#: tools/gst-inspect.c:1526
+#: tools/gst-inspect.c:1523
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
 
-#: tools/gst-inspect.c:1627
+#: tools/gst-inspect.c:1624
 #, c-format
 msgid "Could not load plugin file: %s\n"
 msgstr ""
 
-#: tools/gst-inspect.c:1632
+#: tools/gst-inspect.c:1629
 #, c-format
 msgid "No such element or plugin '%s'\n"
 msgstr ""
@@ -1384,7 +1384,7 @@
 msgstr ""
 
 #: tools/gst-launch.c:912
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 #: tools/gst-launch.c:914
@@ -1437,7 +1437,7 @@
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1047 tools/gst-launch.c:1123
+#: tools/gst-launch.c:1047 tools/gst-launch.c:1142
 msgid "Setting pipeline to PAUSED ...\n"
 msgstr ""
 
@@ -1469,34 +1469,42 @@
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1103
+#: tools/gst-launch.c:1107
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
-#: tools/gst-launch.c:1106
+#: tools/gst-launch.c:1111
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
+#: tools/gst-launch.c:1114
 msgid "Waiting for EOS...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1111
+#: tools/gst-launch.c:1121
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1113
+#: tools/gst-launch.c:1125
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
+#: tools/gst-launch.c:1129
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
-#: tools/gst-launch.c:1120
+#: tools/gst-launch.c:1139
 msgid "Execution ended after %"
 msgstr ""
 
-#: tools/gst-launch.c:1131
+#: tools/gst-launch.c:1150
 msgid "Setting pipeline to READY ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1143
+#: tools/gst-launch.c:1162
 msgid "Setting pipeline to NULL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1148
+#: tools/gst-launch.c:1167
 msgid "Freeing pipeline ...\n"
 msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
index c1d279c..ff3763d 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index cb710c0..a313e6f 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1121,7 +1121,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Kimeneti címkék (metaadatok)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1189,12 +1189,20 @@
 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 – EOS kényszerítése az adatcsatornára\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Várakozás EOS-ra…\n"
 
 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: 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"
 
diff --git a/po/id.gmo b/po/id.gmo
index 1282282..3646226 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index c8417cf..41fe05b 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1122,7 +1122,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tag keluaran (juga dikenal sebagai metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1190,12 +1190,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS pada matikan diaktifkan -- Paksa EOS pada pemipaan\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS pada matikan diaktifkan -- Paksa EOS pada pemipaan\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Menunggu untuk EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS diterima - menghentikan baris pipa...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interupsi: Menghentikan baris pipa ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Galat terjadi ketika menunggu EOS\n"
 
diff --git a/po/it.gmo b/po/it.gmo
index fbc027b..df678d7 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 86b1ace..43251d5 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1299,7 +1299,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Stampa i tag (anche noti come metadati)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 # -v, --verbose
@@ -1376,12 +1376,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS all'arresto abilitato -- Forzato EOS sulla pipeline\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS all'arresto abilitato -- Forzato EOS sulla pipeline\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "In attesa di EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Ricevuto EOS - arresto della pipeline...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrotto: arresto della pipeline ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Si è verificato un errore durante l'attesa di EOS\n"
 
diff --git a/po/ja.gmo b/po/ja.gmo
index 34c5221..7cbc23d 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 183808c..88425c2 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1103,7 +1103,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "タグ (メタデータ) を出力する"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1172,6 +1172,9 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
@@ -1179,6 +1182,10 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "割り込み: パイプラインを停止しています...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "割り込み: パイプラインを停止しています...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/lt.gmo b/po/lt.gmo
index d6865b6..6d3b5b9 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 428c2a1..e3fe79c 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1131,7 +1131,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Išvesti žymas (dar žinomas kaip metaduomenys)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1199,12 +1199,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "Įjungtas EOS išjungiant – priverstinai naudojama EOS konvejeryje\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Įjungtas EOS išjungiant – priverstinai naudojama EOS konvejeryje\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Laukiama EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS gautas – stabdomas konvejeris...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Pertraukimas: stabdomas konvejeris...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Įvyko klaida laukiant EOS\n"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index 7602a13..f0b9e74 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index cd8bb27..eb3fcc9 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1090,7 +1090,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1158,12 +1158,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 4cff0b7..344dc97 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 64eb2e0..11627b7 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1136,7 +1136,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tags (ook bekend als metadata) weergeven"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1204,12 +1204,20 @@
 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 -- Forceer een EOS op de pijplijn\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Wacht op EOS...\n"
 
 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: 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"
 
diff --git a/po/pl.gmo b/po/pl.gmo
index 8ffb6dd..bafe73a 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 56e76f7..29de711 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1132,7 +1132,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Wypisanie znaczników (znanych także jako metadane)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1200,12 +1200,20 @@
 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 - wymuszanie EOS w potoku\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Oczekiwanie na EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Otrzymano EOS - zatrzymywanie potoku...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\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"
 
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 24b28cc..c8404d8 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 9dbb9e4..2aab407 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1146,7 +1146,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Exibir etiquetas (metadados)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1219,12 +1219,22 @@
 "Finalizar fluxo ao desligar habilitado -- Forçando finalização do fluxo na "
 "fila de processamento\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Finalizar fluxo ao desligar habilitado -- Forçando finalização do fluxo na "
+"fila de processamento\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Esperando pelo final do fluxo...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Final do fluxo recebido - parando a fila de processamento...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrupção: Parando a fila de processamento...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Um erro ocorreu ao esperar pelo final do fluxo\n"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index db42dee..82dff00 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 14941bb..d89e598 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1150,7 +1150,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Marcaje de ieșire (cunoscute și ca „metadata”)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1218,12 +1218,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS la închidere activat -- Se forțează EOS pe linia de asamblare\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS la închidere activat -- Se forțează EOS pe linia de asamblare\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Se așteaptă EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS primit - se oprește linia de asamblare...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Întrerupere: Se oprește linia de asamblare ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "A apărut o eroare în timp ce se aștepta EOS\n"
 
diff --git a/po/ru.gmo b/po/ru.gmo
index 01d76de..9a2467a 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index ac6d4f0..d00d4de 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1131,7 +1131,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Выводить теги (метаданные)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1199,12 +1199,20 @@
 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"
+
 msgid "Waiting for EOS...\n"
 msgstr "Ожидание EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Получен EOS - остановка конвейера...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Прерывание: Остановка конвейера...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Во время ожидания EOS произошла ошибка\n"
 
diff --git a/po/rw.gmo b/po/rw.gmo
index 3fcef6a..d885b61 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index 7efa344..25bd509 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1304,7 +1304,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Nka"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 #, fuzzy
@@ -1381,12 +1381,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/sk.gmo b/po/sk.gmo
index 44679e8..50b9c95 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index bb0aed0..f7382b0 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1144,7 +1144,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Vypísať značky (známe tiež ako metadáta)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1215,12 +1215,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS pri vypnutí je povolený -- Vynucujem EOS pre rúru\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS pri vypnutí je povolený -- Vynucujem EOS pre rúru\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Čakám na EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Prijatý EOS - zastavujem rúru ...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Prerušenie: Zastavujem rúru ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Počas čakania na EOS nastala chyba\n"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index df524c0..20b25c6 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index cbbb25d..aeb5819 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1134,7 +1134,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Izhodne oznake (znane tudi kot metapodatki)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1202,12 +1202,20 @@
 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 -- vsiljen EOS vsebine cevovoda\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Čakanje na EOS ...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Prejet EOS - zaustavljanje cevovoda ...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\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"
 
diff --git a/po/sq.gmo b/po/sq.gmo
index 314517e..f0c7c86 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index ce68d23..727a55c 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1138,7 +1138,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tags e output (njohur gjithashtu si metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1209,12 +1209,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/sr.gmo b/po/sr.gmo
index 521cacc..b6d1d6d 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 1473a33..69356e4 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1134,7 +1134,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Излазне ознаке (такође познате и као метаподаци)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1202,12 +1202,20 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "ЕОС је укључен приликом гашења —— Присиљавам ЕОС на спојци низа\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "ЕОС је укључен приликом гашења —— Присиљавам ЕОС на спојци низа\n"
+
 msgid "Waiting for EOS...\n"
 msgstr "Чекам на ЕОС...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "ЕОС је примљен — заустављам спојку низа…\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Прекид: Заустављам спојку низа ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Дошло је до грешке док сам чекао на ЕОС\n"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index 847b09f..d740a96 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 74743dc..2ce557d 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1140,7 +1140,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Utmatningstaggar (även känt som metadata)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1209,6 +1209,10 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr "EOS vid avständning aktiverad -- Tvingar EOS på rörledningen\n"
 
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS vid avständning aktiverad -- Tvingar EOS på rörledningen\n"
+
 # EOS = End Of Stream
 msgid "Waiting for EOS...\n"
 msgstr "Väntar på EOS...\n"
@@ -1216,6 +1220,10 @@
 msgid "EOS received - stopping pipeline...\n"
 msgstr "EOS togs emot - stoppar rörledning...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Avbrott: Stoppar rörledningen ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Ett fel inträffade vid väntan på EOS\n"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 79ef04d..37eedd4 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 53658f8..4410c95 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1139,7 +1139,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Çıktı etiketleri (metadata olarak da bilinir)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1210,12 +1210,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/po/uk.gmo b/po/uk.gmo
index e97062e..ccb390c 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 5ff70f9..dedf3a1 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1128,7 +1128,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Вивести мітки (також відомі як метадані)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1196,12 +1196,20 @@
 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"
+
 msgid "Waiting for EOS...\n"
 msgstr "Очікування на EOS...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "Отримано EOS - завершення роботи каналу...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Переривання: зупинка каналу...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "Під час очікування на EOS сталася помилка\n"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index a2b8fa4..d6f7684 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 34830f6..31951b1 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1129,7 +1129,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Thể xuất (cũng được biết là siêu dữ liệu)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1199,12 +1199,22 @@
 "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 ""
+"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"
 
 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: đ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"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 0639218..00cd886 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 5a42a6f..687551a 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1101,7 +1101,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr "输出标识(也可认为是元数据)"
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1170,12 +1170,20 @@
 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"
+
 msgid "Waiting for EOS...\n"
 msgstr "等待 EOS 信号...\n"
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr "收到 EOS 信号 - 中止管道 ...\n"
 
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "中断: 中止管道 ...\n"
+
 msgid "An error happened while waiting for EOS\n"
 msgstr "等待 EOS 信号时出现一个错误\n"
 
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 17b7fdc..f25a1bf 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 af719f3..cec0e49 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: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+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"
@@ -1117,7 +1117,7 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
 msgstr ""
 
 msgid "Output status information and property notifications"
@@ -1188,12 +1188,18 @@
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
 msgid "Waiting for EOS...\n"
 msgstr ""
 
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ab64603..48f1506 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = tests
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -256,6 +257,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -408,7 +413,11 @@
 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@
diff --git a/tests/benchmarks/Makefile.in b/tests/benchmarks/Makefile.in
index 17b0c45..c4c72ad 100644
--- a/tests/benchmarks/Makefile.in
+++ b/tests/benchmarks/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = caps$(EXEEXT) capsnego$(EXEEXT) complexity$(EXEEXT) \
 	controller$(EXEEXT) init$(EXEEXT) mass-elements$(EXEEXT) \
 	gstpollstress$(EXEEXT) gstclockstress$(EXEEXT) \
@@ -293,6 +294,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -445,7 +450,11 @@
 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@
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index b261337..83d9d13 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -52,6 +52,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(top_srcdir)/common/check.mak
 check_PROGRAMS = gst/gstatomicqueue$(EXEEXT) gst/gstbuffer$(EXEEXT) \
@@ -854,6 +855,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -1006,7 +1011,11 @@
 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@
diff --git a/tests/check/elements/funnel.c b/tests/check/elements/funnel.c
index 3a4ed01..3aaff1a 100644
--- a/tests/check/elements/funnel.c
+++ b/tests/check/elements/funnel.c
@@ -93,10 +93,10 @@
       GST_STATE_CHANGE_SUCCESS);
 
   gst_object_unref (td->funnelsrc);
-  gst_object_unref (td->funnelsink11);
   gst_element_release_request_pad (td->funnel, td->funnelsink11);
-  gst_object_unref (td->funnelsink22);
+  gst_object_unref (td->funnelsink11);
   gst_element_release_request_pad (td->funnel, td->funnelsink22);
+  gst_object_unref (td->funnelsink22);
 
   gst_caps_unref (td->mycaps);
   gst_object_unref (td->funnel);
@@ -150,6 +150,87 @@
 
 GST_END_TEST;
 
+guint num_eos = 0;
+
+static gboolean
+eos_event_func (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
+    ++num_eos;
+
+  return gst_pad_event_default (pad, parent, event);
+}
+
+GST_START_TEST (test_funnel_eos)
+{
+  struct TestData td;
+
+  setup_test_objects (&td, chain_ok);
+
+  num_eos = 0;
+  bufcount = 0;
+
+  gst_pad_set_event_function (td.mysink, eos_event_func);
+
+  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_OK);
+
+  fail_unless (bufcount == 2);
+
+  fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_eos ()));
+  fail_unless (num_eos == 0);
+
+  fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_EOS);
+  fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_OK);
+
+  fail_unless (bufcount == 3);
+
+  fail_unless (gst_pad_push_event (td.mysrc2, gst_event_new_eos ()));
+  fail_unless (num_eos == 1);
+
+  fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_EOS);
+  fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_EOS);
+
+  fail_unless (bufcount == 3);
+
+  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)));
+
+  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);
+
+  fail_unless (bufcount == 4);
+
+  fail_unless (gst_pad_unlink (td.mysrc1, td.funnelsink11));
+  gst_element_release_request_pad (td.funnel, td.funnelsink11);
+  gst_object_unref (td.funnelsink11);
+  fail_unless (num_eos == 2);
+
+  td.funnelsink11 = gst_element_get_request_pad (td.funnel, "sink_11");
+  fail_unless (td.funnelsink11 != NULL);
+  fail_unless (!strcmp (GST_OBJECT_NAME (td.funnelsink11), "sink_11"));
+
+  fail_unless (GST_PAD_LINK_SUCCESSFUL (gst_pad_link (td.mysrc1,
+              td.funnelsink11)));
+
+  /* This will fail because everything is EOS already */
+  fail_if (gst_pad_push_event (td.mysrc1, gst_event_new_eos ()));
+  fail_unless (num_eos == 2);
+
+  fail_unless (gst_pad_unlink (td.mysrc1, td.funnelsink11));
+  gst_element_release_request_pad (td.funnel, td.funnelsink11);
+  gst_object_unref (td.funnelsink11);
+  fail_unless (num_eos == 2);
+
+  td.funnelsink11 = gst_element_get_request_pad (td.funnel, "sink_11");
+  fail_unless (td.funnelsink11 != NULL);
+  fail_unless (!strcmp (GST_OBJECT_NAME (td.funnelsink11), "sink_11"));
+
+  release_test_objects (&td);
+}
+
+GST_END_TEST;
+
 static Suite *
 funnel_suite (void)
 {
@@ -163,6 +244,7 @@
 
   tc_chain = tcase_create ("funnel simple");
   tcase_add_test (tc_chain, test_funnel_simple);
+  tcase_add_test (tc_chain, test_funnel_eos);
   suite_add_tcase (s, tc_chain);
 
   return s;
diff --git a/tests/check/elements/valve.c b/tests/check/elements/valve.c
index 932687c..417dae1 100644
--- a/tests/check/elements/valve.c
+++ b/tests/check/elements/valve.c
@@ -67,9 +67,9 @@
 
   fail_unless (gst_pad_push_event (src, gst_event_new_eos ()) == TRUE);
   fail_unless (event_received == TRUE);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
-  fail_unless (g_list_length (buffers) == 2);
+  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
+  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
+  fail_unless (buffers == NULL);
   caps = gst_pad_query_caps (src, NULL);
   templ_caps = gst_pad_get_pad_template_caps (src);
   fail_unless (caps && gst_caps_is_equal (caps, templ_caps));
@@ -77,13 +77,16 @@
   gst_caps_unref (caps);
 
   gst_check_drop_buffers ();
+  fail_unless (gst_pad_push_event (src, gst_event_new_flush_start ()) == TRUE);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_flush_stop (TRUE)) == TRUE);
   event_received = buffer_allocated = FALSE;
 
   g_object_set (valve, "drop", TRUE, NULL);
   fail_unless (gst_pad_push_event (src, gst_event_new_eos ()) == TRUE);
   fail_unless (event_received == FALSE);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
+  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
+  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
   fail_unless (buffers == NULL);
   caps = gst_pad_query_caps (src, NULL);
   templ_caps = gst_pad_get_pad_template_caps (src);
diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
index b028958..7535945 100644
--- a/tests/check/gst/gstbin.c
+++ b/tests/check/gst/gstbin.c
@@ -1158,6 +1158,117 @@
 
 GST_END_TEST;
 
+static GstPadProbeReturn
+fakesrc_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, void *arg)
+{
+  GstPipeline *pipeline = (GstPipeline *) arg;
+  GstElement *src, *sink;
+
+  src = gst_bin_get_by_name (GST_BIN (pipeline), "fakesrc");
+  fail_unless (src != NULL, "Could not get fakesrc");
+
+  sink = gst_element_factory_make ("fakesink", "fakesink");
+  fail_unless (sink != NULL, "Could not create fakesink");
+
+  g_object_set (sink, "state-error", 1, NULL);
+  gst_bin_add (GST_BIN (pipeline), sink);
+
+  gst_element_link (src, sink);
+  gst_element_sync_state_with_parent (sink);
+  gst_object_unref (src);
+
+  return GST_PAD_PROBE_REMOVE;
+}
+
+GST_START_TEST (test_state_failure_unref)
+{
+  GstElement *src, *pipeline;
+  GstPad *srcpad;
+  GstBus *bus;
+  GstStateChangeReturn ret;
+  GstMessage *msg;
+
+  pipeline = gst_pipeline_new (NULL);
+  fail_unless (pipeline != NULL, "Could not create pipeline");
+
+  src = gst_element_factory_make ("fakesrc", "fakesrc");
+  fail_unless (src != NULL, "Could not create fakesrc");
+
+  srcpad = gst_element_get_static_pad (src, "src");
+  fail_unless (srcpad != NULL, "Could not get fakesrc srcpad");
+
+  gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+      fakesrc_pad_blocked_cb, pipeline, NULL);
+  gst_object_unref (srcpad);
+
+  gst_bin_add (GST_BIN (pipeline), src);
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  fail_unless (bus != NULL, "Could not get bus");
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  /* Wait for an error message from our fakesink (added from the
+     pad block callback). */
+  msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, GST_SECOND);
+  fail_if (msg == NULL, "No error message within 1 second");
+  gst_message_unref (msg);
+
+  /* Check that after this failure, we can still stop, and then unref, the
+     pipeline. This should always be possible. */
+  ret = gst_element_set_state (pipeline, GST_STATE_NULL);
+  fail_unless (ret == GST_STATE_CHANGE_SUCCESS, "downward state change failed");
+
+  gst_object_unref (bus);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+static void
+on_sync_bus_error (GstBus * bus, GstMessage * msg)
+{
+  fail_if (msg != NULL);
+}
+
+GST_START_TEST (test_state_change_skip)
+{
+  GstElement *sink, *pipeline;
+  GstStateChangeReturn ret;
+  GstBus *bus;
+
+  pipeline = gst_pipeline_new (NULL);
+  fail_unless (pipeline != NULL, "Could not create pipeline");
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  fail_unless (bus != NULL, "Could not get bus");
+
+  /* no errors */
+  gst_bus_enable_sync_message_emission (bus);
+  g_signal_connect (bus, "sync-message::error", (GCallback) on_sync_bus_error,
+      NULL);
+
+  sink = gst_element_factory_make ("fakesink", "fakesink");
+  fail_unless (sink != NULL, "Could not create fakesink");
+  gst_element_set_state (sink, GST_STATE_PAUSED);
+
+  g_object_set (sink, "state-error", 5, NULL);
+
+  gst_bin_add (GST_BIN (pipeline), sink);
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  g_object_set (sink, "state-error", 0, NULL);
+
+  /* Check that after this failure, we can still stop, and then unref, the
+     pipeline. This should always be possible. */
+  ret = gst_element_set_state (pipeline, GST_STATE_NULL);
+  fail_unless (ret == GST_STATE_CHANGE_SUCCESS, "downward state change failed");
+
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_bin_suite (void)
 {
@@ -1181,6 +1292,8 @@
   tcase_add_test (tc_chain, test_iterate_sorted);
   tcase_add_test (tc_chain, test_link_structure_change);
   tcase_add_test (tc_chain, test_state_failure_remove);
+  tcase_add_test (tc_chain, test_state_failure_unref);
+  tcase_add_test (tc_chain, test_state_change_skip);
 
   /* fails on OSX build bot for some reason, and is a bit silly anyway */
   if (0)
diff --git a/tests/check/gst/gstelementfactory.c b/tests/check/gst/gstelementfactory.c
index cd57387..52a668f 100644
--- a/tests/check/gst/gstelementfactory.c
+++ b/tests/check/gst/gstelementfactory.c
@@ -18,6 +18,7 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#include "../../gst/gst_private.h"
 
 #include <gst/check/gstcheck.h>
 
diff --git a/tests/check/gst/gstevent.c b/tests/check/gst/gstevent.c
index 173bce1..b16b023 100644
--- a/tests/check/gst/gstevent.c
+++ b/tests/check/gst/gstevent.c
@@ -185,7 +185,7 @@
     GstTagList *taglist = gst_tag_list_new_empty ();
     GstTagList *tl2 = NULL;
 
-    event = gst_event_new_tag (taglist);
+    event = gst_event_new_tag ("test", taglist);
     fail_if (taglist == NULL);
     fail_if (event == NULL);
     fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
diff --git a/tests/check/gst/gstmessage.c b/tests/check/gst/gstmessage.c
index 91f4e38..deea587 100644
--- a/tests/check/gst/gstmessage.c
+++ b/tests/check/gst/gstmessage.c
@@ -113,7 +113,7 @@
     fail_if (tag == NULL);
     /* FIXME, check the actual tags */
     gst_message_unref (message);
-    gst_tag_list_free (tag);
+    gst_tag_list_unref (tag);
   }
   /* GST_MESSAGE_BUFFERING   */
   {
diff --git a/tests/check/gst/gstplugin.c b/tests/check/gst/gstplugin.c
index 0824b06..c4c3395 100644
--- a/tests/check/gst/gstplugin.c
+++ b/tests/check/gst/gstplugin.c
@@ -161,12 +161,16 @@
 GST_START_TEST (test_find_feature)
 {
   GstPluginFeature *feature;
+  GstPlugin *plugin;
 
   feature = gst_registry_find_feature (gst_registry_get (),
       "identity", GST_TYPE_ELEMENT_FACTORY);
   fail_if (feature == NULL, "Failed to find identity element factory");
-  fail_if (strcmp (feature->plugin_name, "coreelements"),
-      "Expected identity to be from coreelements plugin");
+
+  plugin = gst_plugin_feature_get_plugin (feature);
+  fail_unless (plugin != NULL);
+  fail_unless_equals_string (gst_plugin_get_name (plugin), "coreelements");
+  gst_object_unref (plugin);
 
   fail_if (GST_OBJECT_REFCOUNT_VALUE (feature) != 2,
       "Refcount of feature should be 2");
diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c
index b690e2d..9dcca2d 100644
--- a/tests/check/gst/gsttag.c
+++ b/tests/check/gst/gsttag.c
@@ -66,8 +66,8 @@
 
 #define NEW_LIST_FIXED(mode)                                    \
 G_STMT_START {                                                  \
-  if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new_empty ();                                   \
+  if (list) gst_tag_list_unref (list);                          \
+  list = gst_tag_list_new_empty ();                             \
   gst_tag_list_add (list, mode, FTAG, FIXED1, FTAG, FIXED2,     \
                     FTAG, FIXED3, FTAG, FIXED4, NULL);          \
   mark_point();                                                 \
@@ -75,8 +75,8 @@
 
 #define NEW_LIST_UNFIXED(mode)                                  \
 G_STMT_START {                                                  \
-  if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new_empty ();                                   \
+  if (list) gst_tag_list_unref (list);                          \
+  list = gst_tag_list_new_empty ();                             \
   gst_tag_list_add (list, mode, UTAG, UNFIXED1, UTAG, UNFIXED2, \
                     UTAG, UNFIXED3, UTAG, UNFIXED4, NULL);      \
   mark_point();                                                 \
@@ -84,56 +84,56 @@
 
 #define NEW_LISTS_FIXED(mode)                                   \
 G_STMT_START {                                                  \
-  if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new_empty ();                                   \
+  if (list) gst_tag_list_unref (list);                          \
+  list = gst_tag_list_new_empty ();                             \
   gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1,   \
                     FTAG, FIXED2, NULL);                        \
-  if (list2) gst_tag_list_free (list2);                         \
-  list2 = gst_tag_list_new_empty ();                                  \
+  if (list2) gst_tag_list_unref (list2);                        \
+  list2 = gst_tag_list_new_empty ();                            \
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3,  \
                     FTAG, FIXED4, NULL);                        \
-  if (merge) gst_tag_list_free (merge);                         \
+  if (merge) gst_tag_list_unref (merge);                        \
   merge = gst_tag_list_merge (list, list2, mode);               \
   mark_point();                                                 \
 } G_STMT_END;
 
 #define NEW_LISTS_UNFIXED(mode)                                 \
 G_STMT_START {                                                  \
-  if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new_empty ();                                   \
+  if (list) gst_tag_list_unref (list);                          \
+  list = gst_tag_list_new_empty ();                             \
   gst_tag_list_add (list, GST_TAG_MERGE_APPEND, UTAG, UNFIXED1, \
                     UTAG, UNFIXED2, NULL);                      \
-  if (list2) gst_tag_list_free (list2);                         \
-  list2 = gst_tag_list_new_empty ();                                  \
+  if (list2) gst_tag_list_unref (list2);                        \
+  list2 = gst_tag_list_new_empty ();                            \
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, UTAG, UNFIXED3,\
                     UTAG, UNFIXED4, NULL);                      \
-  if (merge) gst_tag_list_free (merge);                         \
+  if (merge) gst_tag_list_unref (merge);                        \
   merge = gst_tag_list_merge (list, list2, mode);               \
   mark_point();                                                 \
 } G_STMT_END;
 
 #define NEW_LISTS_EMPTY1(mode)                                  \
 G_STMT_START {                                                  \
-  if (list) gst_tag_list_free (list);                           \
+  if (list) gst_tag_list_unref (list);                          \
   list = NULL;                                                  \
-  if (list2) gst_tag_list_free (list2);                         \
-  list2 = gst_tag_list_new_empty ();                                  \
+  if (list2) gst_tag_list_unref (list2);                        \
+  list2 = gst_tag_list_new_empty ();                            \
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3,  \
                     FTAG, FIXED4, NULL);                        \
-  if (merge) gst_tag_list_free (merge);                         \
+  if (merge) gst_tag_list_unref (merge);                        \
   merge = gst_tag_list_merge (list, list2, mode);               \
   mark_point();                                                 \
 } G_STMT_END;
 
-#define NEW_LISTS_EMPTY2(mode)                                   \
+#define NEW_LISTS_EMPTY2(mode)                                  \
 G_STMT_START {                                                  \
-  if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new_empty ();                                   \
+  if (list) gst_tag_list_unref (list);                          \
+  list = gst_tag_list_new_empty ();                             \
   gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1,   \
                     FTAG, FIXED2, NULL);                        \
-  if (list2) gst_tag_list_free (list2);                         \
+  if (list2) gst_tag_list_unref (list2);                        \
   list2 = NULL;                                                 \
-  if (merge) gst_tag_list_free (merge);                         \
+  if (merge) gst_tag_list_unref (merge);                        \
   merge = gst_tag_list_merge (list, list2, mode);               \
   mark_point();                                                 \
 } G_STMT_END;
@@ -185,7 +185,7 @@
 
   /* clean up */
   if (list)
-    gst_tag_list_free (list);
+    gst_tag_list_unref (list);
 }
 
 GST_END_TEST
@@ -256,11 +256,11 @@
 
   /* clean up */
   if (list)
-    gst_tag_list_free (list);
+    gst_tag_list_unref (list);
   if (list2)
-    gst_tag_list_free (list2);
+    gst_tag_list_unref (list2);
   if (merge)
-    gst_tag_list_free (merge);
+    gst_tag_list_unref (merge);
 }
 
 GST_END_TEST
@@ -282,7 +282,7 @@
   fail_if (tag_list2 == NULL);
   fail_if (!gst_tag_list_get_date (tag_list2, GST_TAG_DATE, &date2));
   fail_unless (gst_tag_list_is_equal (tag_list2, tag_list));
-  gst_tag_list_free (tag_list2);
+  gst_tag_list_unref (tag_list2);
   g_free (str);
 
   fail_if (g_date_compare (date, date2) != 0);
@@ -294,7 +294,7 @@
   fail_if (g_date_get_year (date2) != 2005);
   g_date_free (date2);
 
-  gst_tag_list_free (tag_list);
+  gst_tag_list_unref (tag_list);
   g_date_free (date);
 }
 
@@ -306,13 +306,9 @@
 
   taglist = gst_tag_list_new_empty ();
   fail_unless (GST_IS_TAG_LIST (taglist));
-  fail_unless (gst_is_tag_list (taglist));
-  gst_tag_list_free (taglist);
+  gst_tag_list_unref (taglist);
 
-  /* this isn't okay */
-  ASSERT_CRITICAL (fail_if (gst_is_tag_list (NULL)));
-
-  /* this however should be fine */
+  /* this should be fine */
   fail_if (GST_IS_TAG_LIST (NULL));
 
   /* check gst_tag_list_is_empty */
@@ -321,7 +317,7 @@
   fail_unless (gst_tag_list_is_empty (taglist));
   gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "JD", NULL);
   fail_if (gst_tag_list_is_empty (taglist));
-  gst_tag_list_free (taglist);
+  gst_tag_list_unref (taglist);
 }
 
 GST_END_TEST;
@@ -340,7 +336,7 @@
   /* That string field with a non-UTF8 string should not have been added */
   fail_unless (gst_tag_list_is_empty (taglist));
 
-  gst_tag_list_free (taglist);
+  gst_tag_list_unref (taglist);
 }
 
 GST_END_TEST;
@@ -380,7 +376,7 @@
   gst_buffer_unref (buf1);
   gst_buffer_unref (buf2);
 
-  gst_tag_list_free (tags);
+  gst_tag_list_unref (tags);
 }
 
 GST_END_TEST;
@@ -399,7 +395,7 @@
   ASSERT_WARNING (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
           GST_TAG_ARTIST, "", NULL));
   gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "xyz", NULL);
-  gst_tag_list_free (tags);
+  gst_tag_list_unref (tags);
 }
 
 GST_END_TEST;
@@ -425,7 +421,7 @@
   fail_unless_equals_float (track_gain, 4.242);
   fail_unless (tags != NULL);
 
-  gst_tag_list_free (tags);
+  gst_tag_list_unref (tags);
   g_free (artist);
   g_free (title);
 }
@@ -448,7 +444,7 @@
   fail_unless (strstr (artists, "Bar") != NULL);
   fail_unless (strstr (artists, "Yay") != NULL);
   g_free (artists);
-  gst_tag_list_free (tags);
+  gst_tag_list_unref (tags);
 }
 
 GST_END_TEST;
@@ -484,8 +480,32 @@
       9.87654310, NULL);
   fail_unless (!gst_tag_list_is_equal (tags2, tags));
 
-  gst_tag_list_free (tags);
-  gst_tag_list_free (tags2);
+  gst_tag_list_unref (tags);
+  gst_tag_list_unref (tags2);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_writability)
+{
+  GstTagList *tags, *wtags;
+
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
+
+  /* take ref, should no longer be writable */
+  gst_tag_list_ref (tags);
+  ASSERT_CRITICAL (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
+          GST_TAG_ARTIST, "Bar", NULL));
+
+  wtags = gst_tag_list_make_writable (tags);
+  /* should be ok now */
+  gst_tag_list_add (wtags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+  gst_tag_list_unref (wtags);
+
+  /* this too, since we dropped the second ref in make_writable */
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+  gst_tag_list_unref (tags);
 }
 
 GST_END_TEST;
@@ -508,6 +528,7 @@
   tcase_add_test (tc_chain, test_empty_tags);
   tcase_add_test (tc_chain, test_new_full);
   tcase_add_test (tc_chain, test_equal);
+  tcase_add_test (tc_chain, test_writability);
 
   return s;
 }
diff --git a/tests/check/gst/gsttagsetter.c b/tests/check/gst/gsttagsetter.c
index 6acdbd3..16e3168 100644
--- a/tests/check/gst/gsttagsetter.c
+++ b/tests/check/gst/gsttagsetter.c
@@ -112,8 +112,8 @@
       NULL);
   assert_tag_setter_list_length (setter, 2);
 
-  gst_tag_list_free (list2);
-  gst_tag_list_free (list1);
+  gst_tag_list_unref (list2);
+  gst_tag_list_unref (list1);
 
   g_object_unref (enc);
 }
@@ -160,9 +160,9 @@
       fail_unless_equals_int (tag_list_length (gst_tag_setter_get_tag_list
               (setter)), tag_list_length (merged));
 
-      gst_tag_list_free (list1);
-      gst_tag_list_free (list2);
-      gst_tag_list_free (merged);
+      gst_tag_list_unref (list1);
+      gst_tag_list_unref (list2);
+      gst_tag_list_unref (merged);
       gst_object_unref (enc);
     }
   }
@@ -200,9 +200,9 @@
       fail_unless_equals_int (tag_list_length (gst_tag_setter_get_tag_list
               (setter)), tag_list_length (merged));
 
-      gst_tag_list_free (list1);
-      gst_tag_list_free (list2);
-      gst_tag_list_free (merged);
+      gst_tag_list_unref (list1);
+      gst_tag_list_unref (list2);
+      gst_tag_list_unref (merged);
       gst_object_unref (enc);
     }
   }
diff --git a/tests/check/gst/gstutils.c b/tests/check/gst/gstutils.c
index d16341e..f26baa4 100644
--- a/tests/check/gst/gstutils.c
+++ b/tests/check/gst/gstutils.c
@@ -504,7 +504,7 @@
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
   srcpad = gst_element_get_static_pad (fakesrc, "src");
-  gst_pad_push_event (srcpad, gst_event_new_tag (list));
+  gst_pad_push_event (srcpad, gst_event_new_tag ("test", list));
   gst_object_unref (srcpad);
 
   bus = gst_element_get_bus (pipeline);
@@ -1025,6 +1025,7 @@
 
   /* test intersection */
   caps = gst_caps_new_simple ("foo/bar", "barversion", G_TYPE_INT, 1, NULL);
+  GST_OBJECT_FLAG_UNSET (sink2_sink, GST_PAD_FLAG_FIXED_CAPS);
   fail_unless (gst_pad_set_caps (sink2_sink, caps));
   gst_pad_use_fixed_caps (sink2_sink);
   gst_caps_unref (caps);
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 2b91820..85d8849 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -55,6 +55,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/common/parallel-subdirs.mak
 subdir = tests/examples
@@ -262,6 +263,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -414,7 +419,11 @@
 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@
diff --git a/tests/examples/adapter/Makefile.in b/tests/examples/adapter/Makefile.in
index eff729e..6c99309 100644
--- a/tests/examples/adapter/Makefile.in
+++ b/tests/examples/adapter/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = adapter_test$(EXEEXT)
 subdir = tests/examples/adapter
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -253,6 +254,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -405,7 +410,11 @@
 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@
diff --git a/tests/examples/controller/Makefile.in b/tests/examples/controller/Makefile.in
index 9dae073..ffd3b16 100644
--- a/tests/examples/controller/Makefile.in
+++ b/tests/examples/controller/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = audio-example$(EXEEXT) control-sources$(EXEEXT) \
 	text-color-example$(EXEEXT)
 subdir = tests/examples/controller
@@ -262,6 +263,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -414,7 +419,11 @@
 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@
diff --git a/tests/examples/helloworld/Makefile.in b/tests/examples/helloworld/Makefile.in
index 0b76d4a..d32e06d 100644
--- a/tests/examples/helloworld/Makefile.in
+++ b/tests/examples/helloworld/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = helloworld$(EXEEXT)
 subdir = tests/examples/helloworld
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@
 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@
diff --git a/tests/examples/helloworld/helloworld.c b/tests/examples/helloworld/helloworld.c
index a659f5b..013ae4d 100644
--- a/tests/examples/helloworld/helloworld.c
+++ b/tests/examples/helloworld/helloworld.c
@@ -16,6 +16,7 @@
       GError *err;
 
       gst_message_parse_error (msg, &err, &debug);
+      g_printerr ("Debugging info: %s\n", (debug) ? debug : "none");
       g_free (debug);
 
       g_print ("Error: %s\n", err->message);
@@ -46,9 +47,9 @@
     return 1;
   }
 
-  playbin = gst_element_factory_make ("playbin2", NULL);
+  playbin = gst_element_factory_make ("playbin", NULL);
   if (!playbin) {
-    g_print ("'playbin2' gstreamer plugin missing\n");
+    g_print ("'playbin' gstreamer plugin missing\n");
     return 1;
   }
 
diff --git a/tests/examples/launch/Makefile.in b/tests/examples/launch/Makefile.in
index dc26c1e..0fb702a 100644
--- a/tests/examples/launch/Makefile.in
+++ b/tests/examples/launch/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = mp3parselaunch$(EXEEXT)
 subdir = tests/examples/launch
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -253,6 +254,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -405,7 +410,11 @@
 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@
diff --git a/tests/examples/manual/Makefile.in b/tests/examples/manual/Makefile.in
index ea8c449..c6e01ed 100644
--- a/tests/examples/manual/Makefile.in
+++ b/tests/examples/manual/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 TESTS = bin$(EXEEXT) elementcreate$(EXEEXT) elementfactory$(EXEEXT) \
 	elementget$(EXEEXT) elementlink$(EXEEXT) elementmake$(EXEEXT) \
 	ghostpad$(EXEEXT) init$(EXEEXT)
@@ -359,6 +360,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -511,7 +516,11 @@
 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@
diff --git a/tests/examples/metadata/Makefile.in b/tests/examples/metadata/Makefile.in
index a3817bb..d8fc778 100644
--- a/tests/examples/metadata/Makefile.in
+++ b/tests/examples/metadata/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = read-metadata$(EXEEXT)
 subdir = tests/examples/metadata
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@
 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@
diff --git a/tests/examples/metadata/read-metadata.c b/tests/examples/metadata/read-metadata.c
index 52ebfe4..9678862 100644
--- a/tests/examples/metadata/read-metadata.c
+++ b/tests/examples/metadata/read-metadata.c
@@ -69,7 +69,7 @@
         if (*tags) {
           old_tags = *tags;
           *tags = gst_tag_list_merge (old_tags, new_tags, GST_TAG_MERGE_KEEP);
-          gst_tag_list_free (old_tags);
+          gst_tag_list_unref (old_tags);
         } else
           *tags = new_tags;
         break;
@@ -178,7 +178,7 @@
     if (tags) {
       g_print ("Metadata for %s:\n", argv[i]);
       gst_tag_list_foreach (tags, print_tag, NULL);
-      gst_tag_list_free (tags);
+      gst_tag_list_unref (tags);
       tags = NULL;
     } else
       g_print ("No metadata found for %s\n", argv[i]);
diff --git a/tests/examples/queue/Makefile.in b/tests/examples/queue/Makefile.in
index 9a25fc8..4891ef4 100644
--- a/tests/examples/queue/Makefile.in
+++ b/tests/examples/queue/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = queue$(EXEEXT)
 subdir = tests/examples/queue
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@
 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@
diff --git a/tests/examples/stepping/Makefile.in b/tests/examples/stepping/Makefile.in
index e7d9916..e6d4e1f 100644
--- a/tests/examples/stepping/Makefile.in
+++ b/tests/examples/stepping/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = framestep1$(EXEEXT)
 subdir = tests/examples/stepping
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@
 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@
diff --git a/tests/examples/streams/Makefile.in b/tests/examples/streams/Makefile.in
index 12cb5a0..5187d85 100644
--- a/tests/examples/streams/Makefile.in
+++ b/tests/examples/streams/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = stream-status$(EXEEXT) $(am__EXEEXT_1)
 @HAVE_PTHREAD_H_TRUE@am__append_1 = rtpool-test
 subdir = tests/examples/streams
@@ -261,6 +262,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -413,7 +418,11 @@
 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@
diff --git a/tests/examples/typefind/Makefile.in b/tests/examples/typefind/Makefile.in
index 843995f..a5b5743 100644
--- a/tests/examples/typefind/Makefile.in
+++ b/tests/examples/typefind/Makefile.in
@@ -51,6 +51,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 noinst_PROGRAMS = typefind$(EXEEXT)
 subdir = tests/examples/typefind
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@
 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@
diff --git a/tests/misc/Makefile.in b/tests/misc/Makefile.in
index 2ad1eea..e281b0d 100644
--- a/tests/misc/Makefile.in
+++ b/tests/misc/Makefile.in
@@ -50,6 +50,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 subdir = tests/misc
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@
 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@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 4e906d7..c282f92 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -53,6 +53,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+target_triplet = @target@
 bin_PROGRAMS = gst-inspect-@GST_API_VERSION@$(EXEEXT) \
 	gst-typefind-@GST_API_VERSION@$(EXEEXT) $(am__EXEEXT_1)
 @GST_DISABLE_PARSE_FALSE@am__append_1 = gst-launch-@GST_API_VERSION@
@@ -318,6 +319,10 @@
 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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
 HAVE_DVIPS = @HAVE_DVIPS@
@@ -470,7 +475,11 @@
 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@
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
index a8000e7..9642ea9 100644
--- a/tools/gst-inspect.c
+++ b/tools/gst-inspect.c
@@ -181,31 +181,29 @@
   return s;
 }
 
-static gboolean
-print_factory_details_metadata (GQuark field_id, const GValue * value,
-    gpointer user_data)
-{
-  gchar *val = g_strdup_value_contents (value);
-  gchar *key = g_strdup (g_quark_to_string (field_id));
-
-  key[0] = g_ascii_toupper (key[0]);
-  n_print ("  %s:\t\t%s\n", key, val);
-  g_free (val);
-  g_free (key);
-  return TRUE;
-}
-
 static void
 print_factory_details_info (GstElementFactory * factory)
 {
+  gchar **keys, **k;
+  GstRank rank;
   char s[20];
 
+  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, GST_PLUGIN_FEATURE (factory)->rank),
-      GST_PLUGIN_FEATURE (factory)->rank);
-  gst_structure_foreach ((GstStructure *) factory->metadata,
-      print_factory_details_metadata, NULL);
+  n_print ("  Rank:\t\t%s (%d)\n", get_rank_name (s, rank), rank);
+
+  keys = gst_element_factory_get_metadata_keys (factory);
+  if (keys != NULL) {
+    for (k = keys; *k != NULL; ++k) {
+      const gchar *val;
+      gchar *key = *k;
+
+      val = gst_element_factory_get_metadata (factory, key);
+      key[0] = g_ascii_toupper (key[0]);
+      n_print ("  %s:\t\t%s\n", key, val);
+    }
+    g_strfreev (keys);
+  }
   n_print ("\n");
 }
 
@@ -591,14 +589,14 @@
   GstStaticPadTemplate *padtemplate;
 
   n_print ("Pad Templates:\n");
-  if (!factory->numpadtemplates) {
+  if (gst_element_factory_get_num_pad_templates (factory) == 0) {
     n_print ("  none\n");
     return;
   }
 
   gstelement_class = GST_ELEMENT_CLASS (G_OBJECT_GET_CLASS (element));
 
-  pads = factory->staticpadtemplates;
+  pads = gst_element_factory_get_static_pad_templates (factory);
   while (pads) {
     padtemplate = (GstStaticPadTemplate *) (pads->data);
     pads = g_list_next (pads);
@@ -1299,6 +1297,7 @@
 print_element_info (GstElementFactory * factory, gboolean print_names)
 {
   GstElement *element;
+  GstPlugin *plugin;
   gint maxlevel = 0;
 
   factory =
@@ -1323,14 +1322,11 @@
     _name = NULL;
 
   print_factory_details_info (factory);
-  if (GST_PLUGIN_FEATURE (factory)->plugin_name) {
-    GstPlugin *plugin;
 
-    plugin = gst_registry_find_plugin (gst_registry_get (),
-        GST_PLUGIN_FEATURE (factory)->plugin_name);
-    if (plugin) {
-      print_plugin_info (plugin);
-    }
+  plugin = gst_plugin_feature_get_plugin (GST_PLUGIN_FEATURE (factory));
+  if (plugin) {
+    print_plugin_info (plugin);
+    gst_object_unref (plugin);
   }
 
   print_hierarchy (G_OBJECT_TYPE (element), 0, &maxlevel);
@@ -1453,22 +1449,21 @@
 static void
 print_plugin_automatic_install_info (GstPlugin * plugin)
 {
-  const gchar *plugin_name;
   GList *features, *l;
 
-  plugin_name = gst_plugin_get_name (plugin);
-
   /* not interested in typefind factories, only element factories */
   features = gst_registry_get_feature_list (gst_registry_get (),
       GST_TYPE_ELEMENT_FACTORY);
 
   for (l = features; l != NULL; l = l->next) {
     GstPluginFeature *feature;
+    GstPlugin *feature_plugin;
 
     feature = GST_PLUGIN_FEATURE (l->data);
 
     /* only interested in the ones that are in the plugin we just loaded */
-    if (g_str_equal (plugin_name, feature->plugin_name)) {
+    feature_plugin = gst_plugin_feature_get_plugin (feature);
+    if (feature_plugin == plugin) {
       GstElementFactory *factory;
 
       g_print ("element-%s\n", gst_plugin_feature_get_name (feature));
@@ -1477,6 +1472,8 @@
       print_plugin_automatic_install_info_protocols (factory);
       print_plugin_automatic_install_info_codecs (factory);
     }
+    if (feature_plugin)
+      gst_object_unref (feature_plugin);
   }
 
   g_list_foreach (features, (GFunc) gst_object_unref, NULL);
diff --git a/tools/gst-launch.c b/tools/gst-launch.c
index 9161594..4abb429 100644
--- a/tools/gst-launch.c
+++ b/tools/gst-launch.c
@@ -466,13 +466,13 @@
 {
   GstTocEntry *entry = (GstTocEntry *) data;
   const gchar spc[MAX_INDENT + 1] = "                                        ";
-  const gchar *entry_types[] = { "chapter", "edition" };
   guint indent = MIN (GPOINTER_TO_UINT (user_data), MAX_INDENT);
   gint64 start, stop;
 
   gst_toc_entry_get_start_stop (entry, &start, &stop);
 
-  PRINT ("%s%s:", &spc[MAX_INDENT - indent], entry_types[entry->type]);
+  PRINT ("%s%s:", &spc[MAX_INDENT - indent],
+      gst_toc_entry_type_get_nick (entry->type));
   if (GST_CLOCK_TIME_IS_VALID (start)) {
     PRINT (" start: %" GST_TIME_FORMAT, GST_TIME_ARGS (start));
   }
@@ -484,7 +484,7 @@
 
   /* print tags */
   gst_tag_list_foreach (entry->tags, print_tag_foreach,
-      GINT_TO_POINTER (indent));
+      GUINT_TO_POINTER (indent));
 
   /* loop over sub-toc entries */
   g_list_foreach (entry->subentries, print_toc_entry,
@@ -663,7 +663,7 @@
 
           gst_message_parse_tag (message, &tag_list);
           gst_tag_list_foreach (tag_list, print_tag, NULL);
-          gst_tag_list_free (tag_list);
+          gst_tag_list_unref (tag_list);
         }
         break;
       case GST_MESSAGE_TOC:
@@ -909,7 +909,7 @@
     {"tags", 't', 0, G_OPTION_ARG_NONE, &tags,
         N_("Output tags (also known as metadata)"), NULL},
     {"toc", 'c', 0, G_OPTION_ARG_NONE, &toc,
-        N_("Ouput TOC (chapters and editions)"), NULL},
+        N_("Output TOC (chapters and editions)"), NULL},
     {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
         N_("Output status information and property notifications"), NULL},
     {"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet,
@@ -1099,18 +1099,37 @@
 
       tfthen = gst_util_get_timestamp ();
       caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
-      if (eos_on_shutdown && caught_error == ELR_INTERRUPT) {
-        PRINT (_("EOS on shutdown enabled -- Forcing EOS on the pipeline\n"));
-        waiting_eos = TRUE;
-        gst_element_send_event (pipeline, gst_event_new_eos ());
-        PRINT (_("Waiting for EOS...\n"));
-        caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
+      if (eos_on_shutdown && caught_error != ELR_NO_ERROR) {
+        gboolean ignore_errors;
 
-        if (caught_error == ELR_NO_ERROR) {
-          /* we got EOS */
-          PRINT (_("EOS received - stopping pipeline...\n"));
-        } else if (caught_error == ELR_ERROR) {
-          PRINT (_("An error happened while waiting for EOS\n"));
+        waiting_eos = TRUE;
+        if (caught_error == ELR_INTERRUPT) {
+          PRINT (_("EOS on shutdown enabled -- Forcing EOS on the pipeline\n"));
+          gst_element_send_event (pipeline, gst_event_new_eos ());
+          ignore_errors = FALSE;
+        } else {
+          PRINT (_("EOS on shutdown enabled -- waiting for EOS after Error\n"));
+          ignore_errors = TRUE;
+        }
+        PRINT (_("Waiting for EOS...\n"));
+
+        while (TRUE) {
+          caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
+
+          if (caught_error == ELR_NO_ERROR) {
+            /* we got EOS */
+            PRINT (_("EOS received - stopping pipeline...\n"));
+            break;
+          } else if (caught_error == ELR_INTERRUPT) {
+            PRINT (_
+                ("Interrupt while waiting for EOS - stopping pipeline...\n"));
+            break;
+          } else if (caught_error == ELR_ERROR) {
+            if (!ignore_errors) {
+              PRINT (_("An error happened while waiting for EOS\n"));
+              break;
+            }
+          }
         }
       }
       tfnow = gst_util_get_timestamp ();
diff --git a/win32/common/config.h b/win32/common/config.h
index 1d32cf7..577e889 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -62,7 +62,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2012-05-13"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-06-07"
 
 /* location of the installed gst-plugin-scanner */
 #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner"
@@ -78,46 +78,46 @@
 /* Define to 1 if you have the `clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
-/* Define if the host CPU is an Alpha */
+/* Define if the target CPU is an Alpha */
 #undef HAVE_CPU_ALPHA
 
-/* Define if the host CPU is an ARM */
+/* Define if the target CPU is an ARM */
 #undef HAVE_CPU_ARM
 
-/* Define if the host CPU is a CRIS */
+/* Define if the target CPU is a CRIS */
 #undef HAVE_CPU_CRIS
 
-/* Define if the host CPU is a CRISv32 */
+/* Define if the target CPU is a CRISv32 */
 #undef HAVE_CPU_CRISV32
 
-/* Define if the host CPU is a HPPA */
+/* Define if the target CPU is a HPPA */
 #undef HAVE_CPU_HPPA
 
-/* Define if the host CPU is an x86 */
+/* Define if the target CPU is an x86 */
 #define HAVE_CPU_I386 1
 
-/* Define if the host CPU is a IA64 */
+/* Define if the target CPU is a IA64 */
 #undef HAVE_CPU_IA64
 
-/* Define if the host CPU is a M68K */
+/* Define if the target CPU is a M68K */
 #undef HAVE_CPU_M68K
 
-/* Define if the host CPU is a MIPS */
+/* Define if the target CPU is a MIPS */
 #undef HAVE_CPU_MIPS
 
-/* Define if the host CPU is a PowerPC */
+/* Define if the target CPU is a PowerPC */
 #undef HAVE_CPU_PPC
 
-/* Define if the host CPU is a 64 bit PowerPC */
+/* Define if the target CPU is a 64 bit PowerPC */
 #undef HAVE_CPU_PPC64
 
-/* Define if the host CPU is a S390 */
+/* Define if the target CPU is a S390 */
 #undef HAVE_CPU_S390
 
-/* Define if the host CPU is a SPARC */
+/* Define if the target CPU is a SPARC */
 #undef HAVE_CPU_SPARC
 
-/* Define if the host CPU is a x86_64 */
+/* Define if the target CPU is a x86_64 */
 #undef HAVE_CPU_X86_64
 
 /* Define if the GNU dcgettext() function is already present or preinstalled.
@@ -334,7 +334,7 @@
 #define PACKAGE_NAME "GStreamer"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 0.11.91"
+#define PACKAGE_STRING "GStreamer 0.11.92"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gstreamer"
@@ -343,7 +343,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.11.91"
+#define PACKAGE_VERSION "0.11.92"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -370,11 +370,14 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* the target CPU */
+#undef TARGET_CPU
+
 /* Define if we should poison deallocated memory */
 #undef USE_POISONING
 
 /* Version number of package */
-#define VERSION "0.11.91"
+#define VERSION "0.11.92"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstenumtypes.c b/win32/common/gstenumtypes.c
index 436df4b..27bead8 100644
--- a/win32/common/gstenumtypes.c
+++ b/win32/common/gstenumtypes.c
@@ -1174,6 +1174,7 @@
   static const GFlagsValue values[] = {
     {C_FLAGS (GST_PAD_FLAG_BLOCKED), "GST_PAD_FLAG_BLOCKED", "blocked"},
     {C_FLAGS (GST_PAD_FLAG_FLUSHING), "GST_PAD_FLAG_FLUSHING", "flushing"},
+    {C_FLAGS (GST_PAD_FLAG_EOS), "GST_PAD_FLAG_EOS", "eos"},
     {C_FLAGS (GST_PAD_FLAG_BLOCKING), "GST_PAD_FLAG_BLOCKING", "blocking"},
     {C_FLAGS (GST_PAD_FLAG_NEED_PARENT), "GST_PAD_FLAG_NEED_PARENT",
         "need-parent"},
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index 3823726..ce04b94 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -338,6 +338,7 @@
 	gst_element_factory_find
 	gst_element_factory_get_element_type
 	gst_element_factory_get_metadata
+	gst_element_factory_get_metadata_keys
 	gst_element_factory_get_num_pad_templates
 	gst_element_factory_get_static_pad_templates
 	gst_element_factory_get_type
@@ -483,7 +484,6 @@
 	gst_int64_range_get_type
 	gst_int_range_get_type
 	gst_is_initialized
-	gst_is_tag_list
 	gst_iterator_copy
 	gst_iterator_filter
 	gst_iterator_find_custom
@@ -748,6 +748,7 @@
 	gst_plugin_error_get_type
 	gst_plugin_error_quark
 	gst_plugin_feature_check_version
+	gst_plugin_feature_get_plugin
 	gst_plugin_feature_get_rank
 	gst_plugin_feature_get_type
 	gst_plugin_feature_list_copy
@@ -1041,10 +1042,8 @@
 	gst_tag_list_add_valist_values
 	gst_tag_list_add_value
 	gst_tag_list_add_values
-	gst_tag_list_copy
 	gst_tag_list_copy_value
 	gst_tag_list_foreach
-	gst_tag_list_free
 	gst_tag_list_get_boolean
 	gst_tag_list_get_boolean_index
 	gst_tag_list_get_buffer
@@ -1089,6 +1088,7 @@
 	gst_tag_merge_strings_with_comma
 	gst_tag_merge_use_first
 	gst_tag_register
+	gst_tag_register_static
 	gst_tag_setter_add_tag_valist
 	gst_tag_setter_add_tag_valist_values
 	gst_tag_setter_add_tag_value
@@ -1124,12 +1124,15 @@
 	gst_toc_entry_copy
 	gst_toc_entry_free
 	gst_toc_entry_get_start_stop
+	gst_toc_entry_get_type
 	gst_toc_entry_new
 	gst_toc_entry_new_with_pad
 	gst_toc_entry_set_start_stop
+	gst_toc_entry_type_get_nick
 	gst_toc_entry_type_get_type
 	gst_toc_find_entry
 	gst_toc_free
+	gst_toc_get_type
 	gst_toc_new
 	gst_toc_setter_add_toc_entry
 	gst_toc_setter_get_toc
